[[TracNav(DocTOC)]] [[PageOutline]] = Building From Source = == Pre-requirement check list == You don't have to check the following list yourself, the configure script will do for you, unless you have problem with configure/make. * Get the XCache source files, see GettingSource. * the [http://www.php.net/downloads.php lastest version] of php 4.3.x, 4.4.x, 5.1.x, 5.2.x or 6.x series, 5.0.x isn't one of them. You can check the version with: ====== Check version with cli ====== {{{ #!ShellExample $ php-cgi -v PHP 4.4.3-dev (cgi-fcgi) (built: Mar 10 2006 18:46:02) Copyright (c) 1997-2006 The PHP Group Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies }}} or setup a file with: ====== Check version with phpinfo ====== {{{ #!php }}} and request it from your browser. * Get the php works with webserver without XCache first! * common build tools: c compiler, make, libtool (required by php build env) * php building env installed. if you've install php yourself, make sure you have do "make install". for some os distro, there is "php-devel" package. check it out with: ====== Check phpize ====== {{{ #!ShellExample $ which phpize /usr/local/bin/phpize (or) /usr/bin/phpize }}} you output may be vary from this, depending on your installation of php. if it's not found, you should find it yourself * m4 * indent (optional) == Building == GettingSource, and cd into XCache directory. ====== Build ====== {{{ #!ShellExample ~ $ cd ~/src/xcache ~/src/xcache $ ls (you XCache source is here) ~/src/xcache $ phpize (generating configure .... everytime you upgrade php, or update to a new XCache, you have to run phpize again) (it is suggested to build outside of the source directory, so make an build directory first and enter it) ~/src/xcache $ mkdir ../xcache-build ~/src/xcache $ cd ../xcache-build ~/src/xcache-build $ ../xcache/configure --help ...... --enable-xcache Include XCACHE support. --enable-xcache-optimizer XCACHE: (N/A) --enable-xcache-coverager XCACHE: Enable code coverage dumper --enable-xcache-assembler XCACHE: (N/A) --enable-xcache-disassembler XCACHE: Enable opcode to php variable dumper --enable-xcache-encoder XCACHE: (N/A) --enable-xcache-decoder XCACHE: (N/A) --enable-xcache-test XCACHE: Enable self test - FOR DEVELOPERS ONLY!! ...... (run configure with options you selected now) ~/src/xcache-build $ ../xcache/configure --enable-xcache --enable-xcache-coverager (many output here, if you have problem, read the error message twice) (and search inside config.log, and check Pre-requirement in this page above) ~/src/xcache-build $ make (many output here again, check if it success or error out.) }}} NOTE: It's always better not to enable unnecessary modules for production server unless you're not the maintainer of the server. Play with it locally. WARNING: If you're using something like /opt/php/bin/phpize which isn't the 1st one found in $PATH, remember to configure --with-php-config=/opt/php/bin/php-config, exactly the same directory as phpize ====== Special path ====== {{{ #!ShellExample ~/src/xcache-build $ PATH="/opt/php/bin/:$PATH" ../xcache/configure \ --with-php-config=/opt/php/bin/php-config \ --enable-xcache \ --enable-xcache-coverager (line is broken up for readability) ~/src/xcache-build $ make }}} == Installing == ====== Install with root ====== {{{ #!ShellExample ~/src/xcache-build $ su Password: (input your root password here. whenever u see a red # in code listing in this wiki, it means you need to be root to do that) ~/src/xcache-build # make install (many output here, and you can see where the XCache extension is installed into, remember the extension path) }}} You have to modify php.ini to make XCache enable in your php, see InstallingAsPhpExtension See also: GettingSource (prev), InstallingAsPhpExtension (next)