Aston J

How to install XCache

Posted on: July 27th, 2009 by AstonJ 3 Comments

XCache is one of the most respected php cachers around, so here’s a little how to guide that I wrote up as a reference for myself a while back. Hope you find it useful…

  • Ssh telnet into your server as root user
  • Grab XCache by typing:
cd /usr/local/src
wget http://xcache.lighttpd.net/pub/Releases/1.2.2/xcache-1.2.2.tar.gz

Wait for package to download

  • find phpize and php-config paths, type:
whereis phpize
whereis php-config

outputs looks like:

phpize: /usr/bin/phpize /usr/local/bin/phpize and
php-config: /usr/bin/php-config /usr/local/bin/php-config

Next we’ll extract files, change directories and install, by referencing the file paths we were given above:

gunzip -c xcache-1.2.2.tar.gz | tar xf -
cd xcache-1.2.2
/usr/bin/phpize
./configure --enable-xcache
make
make install

Take note of where it copies xcache.so file i.e.

/usr/lib/php/extensions/no-debug-non-zts-20020616/xcache.so

Now locate php.ini, type:

whereis php.ini

output looks like:

php: /usr/bin/php /usr/lib/php /usr/lib/php.ini /usr/local/lib/php.ini /usr/include/php /usr/man/man1/php.1

Edit php.ini using pico, vi or nano text editors (in linux) and scroll to the section like:

;Windows Extensions
;Note that MySQL and ODBC support is now built in, so no dll is needed for it.
;
;extension=php_bz2.dll

Above that add the following, but edit accordingly (see proceeding notes)


[xcache-common]
zend_extension = /usr/lib/php/extensions/no-debug-non-zts-20020616/xcache.so

; required for >=php5.1 if you turn XCache on
auto_globals_jit = Off

[xcache.admin]
xcache.admin.user = "admin"
; paste the output of md5("password") below
xcache.admin.pass = ""

[xcache]
xcache.shm_scheme       = "mmap"
xcache.size         = 32M
xcache.count            = 1
xcache.slots            = 8K
xcache.ttl          = 7200
xcache.gc_interval      = 300

xcache.var_size         = 32M
xcache.var_count        = 1
xcache.var_slots        = 8K
xcache.var_ttl          = 7200
xcache.var_maxttl       = 14400
xcache.var_gc_interval      = 300

xcache.test         = Off
xcache.readonly_protection  = Off
xcache.mmap_path        = "/dev/zero"
xcache.coredump_directory   = ""

xcache.cacher           = On
xcache.stat         = On
xcache.optimizer        = On

[xcache.coverager]
xcache.coverager        = Off
xcache.coveragedump_directory   = ""

Note: xcache.count refers to the number of processors
Note: You may want to set ‘xcache.size’ and ‘xcache.var_size’ to 64 if you have over 1GB of ram.

Save php.ini file and restart Apache for XCache to load:

  • /etc/rc.d/init.d/httpd stop
  • /etc/rc.d/init.d/httpd start

Finally, check phpinfo.php for XCache section

Disclaimer & Credits

As usual, this guide is provided with no warranties or guarantees – use at your own risk.
Thanks to George (eva2000 at vbulletin) for the basic template and Teck for the settings.

Tags: , ,
  • SarDira

    Thanks so much for your help, this guide is simple and easy. one point though for those who got a problem after following the instructions, you need to move this line:
    zend_extension = /usr/lib/php/extensions/no-debug-non-zts-20020616/xcache.so
    to the beginning where other zend_extension lines are located.

  • zems

    Can you please provide uninstalation guide also, just in case that we have some problems.

    Thank you for this great and easy tutorial :)

  • Luis

    Thanks mate, I was finally able to install it using your guide. :)