Q. How do I install Xcache opcode cacher for PHP 5 under RHEL / CentOS version 5.0 server?
A. XCache is a open-source opcode cacher, which means that it accelerates the performance of PHP on servers. It optimizes performance by removing the compilation time of PHP scripts by caching the compiled state of PHP scripts into the shm (RAM) and uses the compiled version straight from the RAM. This will increase the rate of page generation time by up to 5 times as it also optimizes many other aspects of php scripts and reduce serverload.
Step # 1: Download xcahce source code
Use wget command to download latest stable release:
# cd /opt
# wget http://xcache.lighttpd.net/pub/Releases/1.2.1/xcache-1.2.1.tar.gz
Step # 2: Untar tar ball
Use tar command:
# tar -zxvf xcache-1.2.1.tar.gz
# cd xcache-1.2.1
Step # 2: Compile and install xcahce
Use phpize command to prepare xcache as a PHP extension for compiling:
# phpize
Configure, compile and install xcache:
# ./configure --enable-xcache
# make
# make install
Default xcache.so installation location
- 64 bit PHP module installed at /usr/lib64/php/modules/xcache.so
- 32 bit PHP module installed at /usr/lib/php/modules/xcache.so
Step # 3: Create xcache.ini file
Under RHEL / CentOS, you place php modules configuration at /etc/php.d/ directory:
# cd /etc/php.d/
Create xcahce.ini file:
# vi xcahce.ini
Append configuration directives:
[xcache-common] ; change me - 64 bit php => /usr/lib64/php/modules/xcache.so ; 32 bit php => /usr/lib/php/modules/xcache.so zend_extension = /usr/lib64/php/modules/xcache.so [xcache.admin] xcache.admin.auth = On xcache.admin.user = "mOo" ; xcache.admin.pass = md5($your_password) xcache.admin.pass = "" [xcache] xcache.shm_scheme = "mmap" xcache.size = 32M xcache.count = 1 xcache.slots = 8K xcache.ttl = 3600 xcache.gc_interval = 300 ; Same as aboves but for variable cache ; If you don't know for sure that you need this, you probably don't xcache.var_size = 0M xcache.var_count = 1 xcache.var_slots = 8K xcache.var_ttl = 0 xcache.var_maxttl = 0 xcache.var_gc_interval = 300 ; N/A for /dev/zero xcache.readonly_protection = Off xcache.mmap_path = "/dev/zero" xcache.cacher = On xcache.stat = On
Save and close the file.
Alternatively, you can also copy default xcache.ini to /etc/php.d/
# cp xcache.ini /etc/php.d/
# vi /etc/php.d/xcache.ini
Restart your Apache web server:
# service httpd restart
If you are using Lighttpd web server, enter:
# service lighttpd restart
Step # 4: Make sure xcache is working
Type the following command for verification:
$ php -v
Output:
PHP 5.1.6 (cli) (built: Nov 20 2007 11:11:52)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies
with XCache v1.2.1, Copyright (c) 2005-2007, by mOo
You should see line "XCache v1.2.1, Copyright (c) 2005-2007, by mOo"
- Email FAQ to a friend
- Printable version
- Rss Feed
- Last Updated: 11-24-07

{ 10 comments… read them below or add one }
Currently in Freebsd with php5, apache22 and xdebug2,
xcache could not work with this combination.
Could you figure out to use xcache with above ones?
Thanks
IT only works with the following PHP cvs branches versions (php 5.0 is not supported, get php 5.2)
PHP_4_3
PHP_4_4
PHP_5_1
PHP_5_2
PHP HEAD(6.x)
For me this didn’t work untill I enabled two settings in php.ini file
; Directory in which the loadable extensions (modules) reside.
extension_dir = “/usr/local/lib/php/extensions/no-debug-non-zts-20060613/”
; Dynamic Extensions
extension=xcache.so
phpize isn’t found on my CentOS4 server.
is there an alternate command?
Ken,
Install php-devel package – which lets you compile dynamic extensions to PHP. This package has phpize command. Use yum command to install the same.
Any RPM available for RHEL/CentOS 5?
Very nice article. I installed with the help of this. In the middle I faced a problem when run the command ‘phpize’. I got an error like “bash: phpize: command not found”. Instead of ‘phpize’ I run ‘yum -y install php-devel’. Then again I continue from ‘phpize’. It’s installed. Thanx for your article.
-Dharmaraj.A
Could not get this to work with Apache, MPM Worker and PHP as fastcgi. PHP as mod_php works fine.
Any extra requirement for fastcgi?
Can i use xcache and Eaccelerator at the same time? I use vbulletin also..
PHP 5.2.6 (cli) (built: Sep 3 2008 06:59:35)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
with eAccelerator v0.9.5.3, Copyright (c) 2004-2006 eAccelerator, by eAccelerator
with the ionCube PHP Loader v3.1.32, Copyright (c) 2002-2007, by ionCube Ltd., and
with Zend Extension Manager v1.2.2, Copyright (c) 2003-2007, by Zend Technologies
with Zend Optimizer v3.3.3, Copyright (c) 1998-2007, by Zend Technologies
@Sezai,
Only use one of them at a time. Xcache is the best.