Установка eaccelerator на чистый деб, на котором есть только nginx+php-fpm, mysql, Sphinx

Делать было нечего поставил eAccelerator, ну и решил написать инструкцию как его ставить на деб с nginx+php-fpm

eAccelerator
Бесплатный свободный PHP акселератор, оптимизатор, и динамический кэш. Он увеличивает производительность PHP скриптов, кешируя их в их скомпилированном виде. Также оптимизация увеличивает скорость работы скриптов. eAccelerator обычно уменшает нагрузку на сервер и увеличивает скорость PHP кода в 1-10 раз.
]
apt-get install build-essential php5-dev php-apc
/etc/init.d/php5-fpm restart


берем ссылку с sourceforge.net/projects/eaccelerator/files/eaccelerator/

wget ссылка
tar xvfj eaccelerator-0.9.6.1.tar.bz2
cd eaccelerator-0.9.6.1
phpize
./configure
make
make test (смотрим на совместимость с этой версией пхп у меня были проблемы. Обновил apt-get install make, обновил репозитории apt-get update. обновил php и т.д. и пересобрал до совместимости)
make install

sudo vi /etc/php5/fpm/conf.d/eaccelerator.ini

вставляем
extension=«eaccelerator.so»
; Максимальный размер кеша в мегабайтах (ставьте адекватное для вашего VDS число)
eaccelerator.shm_size="512"

; Корневой каталог для хранения кеша 
eaccelerator.cache_dir="/var/cache/eaccelerator"

eaccelerator.enable="1"

; Подключить или отключить встроенный оптимайзер
; которые увеличивает скорость выполнения кода 
eaccelerator.optimizer="1"

; Включаем проверку модификации PHP файлов. Поставьте 
; "1" если требуется, чтобы проверялись все модифицированные
; файлы и перекомпиливались заново. 
eaccelerator.check_mtime="1"

; Режим отладки. Если поставить 1 или вообще 
; забыть упомянуть этот параметр, при большой 
; посещаемости загадит логи Apache за считанные часы. 
eaccelerator.debug="0"

; Здесь можно определить можно определить, какие 
; файлы должны быть кешированы. По-умолчанию если 
; здесь ничего не указано, то кешируются все файлы. 
; Для расширенного использования прочитайте документацию. 
eaccelerator.filter=""

; Максимально допустимое значение которое может быть
; отправлено в разделяемую память. По-умолчанию, 
; "ноль" - без ограничений. Размер указывается в байтах, 
; но можно указать приставки, например: 10240, 10K, 1M. 
eaccelerator.shm_max="0"

; Когда акселлератору потребуется отправить в разделяемую
; память какой-то объект и при этом в памяти для этого 
; не окажется места, он попытается удалить файлы, которые 
; не были запрошены в течении последних "shm_ttl" секунд. 
; По-умолчанию, это значение равно "0" - не удалять ничего. 
eaccelerator.shm_ttl="0"

; Когда акселлератору потребуется отправить в разделяемую
; память какой-то объект и при этом в памяти для этого 
; не окажется места, он попытается удалить старые скрипты, 
; если предыдущие такие попытки были не больше, чем 
; "shm_prune_period" секунд назад.По-умолчанию, это значение 
; равно "0" - не удалять ничего. 
eaccelerator.shm_prune_period="0"

; Включить или отключить кеширование скомпиленных скриптов
; _только_ на диск. Этот параметр не влияет на данные сессий 
; и кеширование контента. По-умолчанию, значение 0, что означает 
; что данные будут кешироваться и в памяти и на диске. 
eaccelerator.shm_only="0"

; Включить или отключить сжатие закешированного контента. 
; По-умолчанию, "1" - сжимать. 
eaccelerator.compress="1"

; Уровень сжатия. По-умолчанию, "9" - максимум.
eaccelerator.compress_level="9"


sudo mkdir -p /var/cache/eaccelerator
sudo chmod 0777 /var/cache/eaccelerator


рубутим
но сначала набираем
php5-fpm -v
и смотрим возможные ошибки. Есть вероятность что после сборки будут подключены некоторые модули 2а раза в php.ini и в /ect/php5/conf.d/*.ini или чего то будет не хватать.
Если ошибок нет:
/etc/init.d/php5-fpm restart
">

После чего убеждаемся что все работает открываем phpinfo и смотрим блок
eAccelerator

должно быть типо:

Version 	0.9.6.1
Caching Enabled 	true
Optimizer Enabled 	true
Check mtime Enabled 	true
Memory Size 	33,554,360 Bytes
Memory Available 	7,699,784 Bytes
Memory Allocated 	25,854,576 Bytes
Cached Scripts 	538
Removed Scripts 	0

Directive	Local Value	Master Value
eaccelerator.allowed_admin_path	no value	no value
eaccelerator.cache_dir	/var/cache/eaccelerator	/var/cache/eaccelerator
eaccelerator.check_mtime	1	1
eaccelerator.debug	0	0
eaccelerator.enable	1	1
eaccelerator.filter	no value	no value
eaccelerator.log_file	no value	no value
eaccelerator.optimizer	1	1
eaccelerator.shm_max	0- аПаО бƒаМаОаЛб‡аАаНаИбŽ 0	0- аПаО бƒаМаОаЛб‡аАаНаИбŽ 0
eaccelerator.shm_only	0	0
eaccelerator.shm_prune_period	0	0
eaccelerator.shm_size	32	32
eaccelerator.shm_ttl	00- аПаО бƒаМаОаЛб‡аАаНаИбŽ 0	00- аПаО бƒаМаОаЛб‡аАаНаИбŽ 0


если будет:

Caching Enabled 	false
Optimizer Enabled 	false
Check mtime Enabled 	false
значит скорее всего где то косяк в сборке бинарников совместимости или конфиге.

Если блока не будет вообще значит косяк скорее всего в конфиге.

3 комментария

avatar
Вроде как xcache лучше, хотя могу сильно ошибатся. Мало опыта. Но, когда гуглил — встретил массу негативных отзывов на счет eAcc. Вот бы кто нибудь разьеснил что к чему.
avatar
eac более нестабильный на мой взгляд, зато выхлоп лучше. xcache работает стабильно, но толку с него не много. APC не плох но у него раньше надо было File Locking менять обязательно, в новых версиях вроде уже изменили по дефолту.

С другой стороны у меня на работе на хостинг серверах eac стоит по дефолту на всех, и он не так уж и часто падает, так что нестабильность понятие относительное.
avatar
На самом деле это все субъективно. все зависит от настроек, сервака, движка и т.д. Если пытаться выжимать максимум то нужно ставить разные и смотреть статистику.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.