Для установки кэширующего модуля для php xcache нам потребуется установленный пакет php-dev.
Проверим его наличие командой
со всем соглашаемся, нажав "y".
Теперь устанавливаем необходимые для сборки утилиты:
После этого нам надо скачать архив с исходными кодами xcache, распаковать его, скомпилировать и установить:
Теперь редактируем файл /etc/php.d/xcache.ini , и добавляем туда следующие строки:
Проверим его наличие командой
rpm -qa | grep php-develЕсли вывод был пустым, то это значит, что пакет php-devel у вас не установлен. Для установки надо выполнить команду:
yum install php-develПолучим список пакетов к установке:
Dependencies Resolved
======================================================================================================================================
Package Arch Version Repository Size
======================================================================================================================================
Installing:
php-devel i686 5.2.17-1.el6.art atomic 505 k
Installing for dependencies:
autoconf noarch 2.63-5.1.el6 base 781 k
automake noarch 1.11.1-1.2.el6 base 550 k
Transaction Summary
======================================================================================================================================
Install 3 Package(s)
Upgrade 0 Package(s)
Total download size: 1.8 M
Installed size: 6.9 M
Is this ok [y/N]:
со всем соглашаемся, нажав "y".
Теперь устанавливаем необходимые для сборки утилиты:
yum install gcc make
После этого нам надо скачать архив с исходными кодами xcache, распаковать его, скомпилировать и установить:
cd /usr/srcРасширение будет установлено в дефолтную папку для расширений php. В моем случае - в /usr/lib/modules/php
wget http://xcache.lighttpd.net/pub/Releases/1.3.2/xcache-1.3.2.tar.gz
tar -xzf xcache-1.3.2.tar.gz
cd xcache-1.3.2
phpize
./configure --enable-xcache
make
make install
Теперь редактируем файл /etc/php.d/xcache.ini , и добавляем туда следующие строки:
# configuration for php Xcache module
[xcache-common]
;; install as zend extension (recommended), normally "$extension_dir/xcache.so"
zend_extension = /usr/lib/php/modules/xcache.so
[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 = 64M
; set to cpu count (cat /proc/cpuinfo |grep -c processor)
xcache.count = 8
; just a hash hints, you can always store count(items) > slots
xcache.slots = 8K
; ttl of the cache item, 0=forever
xcache.ttl = 0
; interval of gc scanning expired items, 0=no scan, other values is in seconds
xcache.gc_interval = 0
; same as aboves but for variable cache
xcache.var_size = 16M
xcache.var_count = 1
xcache.var_slots = 8K
; default ttl
xcache.var_ttl = 0
xcache.var_maxttl = 0
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 = "/dev/zero"
; 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 = On
xcache.optimizer = Off
[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 = ""
В строке
zend_extension = /usr/lib/php/modules/xcache.so
мы подключаем xcache как zend-расширение.
Рекомендуется настроить следующие параметры:
xcache.count - равным количеству ядер процессора на сервере
xcache.size - я выставляю равным числу, которое высчитывается по формуле:
(общее количество оперативной памяти на сервере)/4/xcache.countПосле этого перезапускаем apache командой
/etc/init.d/httpd restartИ смотрим на результат:
# php -v
PHP 5.2.17 (cli) (built: Jan 7 2011 08:57:50) Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies
with XCache v1.3.2, Copyright (c) 2005-2011, by mOo