Xcache is a very good php cache that can accelerate php page deliveries .The following example uses xcache version 1.2.2.Please check the website http://xcache.lighttpd.net/ before you start the installation for the latest available release of this actively maintained software
neutron:~# wget http://xcache.lighttpd.net/pub/Releases/1.2.2/xcache-1.2.2.tar.gz
neutron:~# tar -xvzf xcache-1.2.2.tar.gz
neutron:~# cd xcache-1.2.2/
neutron:~/xcache-1.2.2# phpize
neutron:~/xcache-1.2.2# ./configure –enable-xcache –enable-xcache-optimizer
neutron:~/xcache-1.2.2# make
neutron:~/xcache-1.2.2# make install
neutron:~/xcache-1.2.2# cat xcache.ini >> /etc/php5/apache2/conf.d/xcache.ini
neutron:~# touch /tmp/xcache
neutron:~# chmod 666 /tmp/xcache
Edit the file /etc/php5/apache2/conf.d/xcache.ini according to your requirements .My xcache.in file is included below
[xcache-common]
;; install as zend extension (recommended), normally “$extension_dir/xcache.so”
zend_extension = /usr/lib/php5/20060613+lfs/xcache.so
; zend_extension_ts = /usr/local/lib/php/extensions/non-debug-zts-xxx/xcache.so
;; For windows users, replace xcache.so with php_xcache.dll
zend_extension_ts = c:/php/extensions/php_xcache.dll
;; or install as extension, make sure your extension_dir setting is correct
; extension = xcache.so
;; or win32:
; extension = php_xcache.dll
;[xcache.admin]
;xcache.admin.enable_auth = On
;xcache.admin.user = “mOo”
; xcache.admin.pass = md5($your_password)
;xcache.admin.pass = “”
[xcache]
; ini only settings, all the values here is default unless explained
; select low level shm/allocator scheme implemenation
xcache.shm_scheme = “mmap”
; to disable: xcache.size=0
; to enable : xcache.size=64M etc (any size > 0) and your system mmap allows
xcache.size = 16M
; set to cpu count (cat /proc/cpuinfo |grep -c processor)
xcache.count = 1
; just a hash hints, you can always store count(items) > slots
xcache.slots = 8K
; ttl of the cache item, 0=forever
xcache.ttl = 86400
; interval of gc scanning expired items, 0=no scan, other values is in seconds
xcache.gc_interval = 86400
; same as aboves but for variable cache
xcache.var_size = 16M
xcache.var_count = 1
xcache.var_slots = 8K
; default ttl
xcache.var_ttl = 86400
xcache.var_maxttl = 86400
xcache.var_gc_interval = 300
xcache.test = Off
; N/A for /dev/zero
xcache.readonly_protection = Off
; for *nix, xcache.mmap_path is a file path, not directory.
; Use something like “/tmp/xcache” if you want to turn on ReadonlyProtection
; 2 group of php won’t share the same /tmp/xcache
; for win32, xcache.mmap_path=anonymous map name, not file path
xcache.mmap_path = “/tmp/xcache”
; leave it blank(disabled) or “/tmp/phpcore/”
; make sure it’s writable by php (without checking open_basedir)
xcache.coredump_directory = “”
; per request settings
xcache.cacher = On
xcache.stat = Off
xcache.optimizer = On
[xcache.coverager]
; per request settings
; enable coverage data collecting for xcache.coveragedump_directory and xcache_coverager_start/stop/get/clean() functions (will hurt executing performance)
xcache.coverager = Off
; ini only settings
; make sure it’s readable (care open_basedir) by coverage viewer script
; requires xcache.coverager=On
xcache.coveragedump_directory = “”
Please note that i am installing xcache on a Debian GNU/Linux system .You must generally have the xcache.ini file contents in the main php.ini file or any other included file.
You can use xcache only with php running as a apache httpd module or with fastcgi . xcache will not work with php workinng as a cgi .
Posted under php