Установка eAccelerator на Debian

Eaccelerator – это программа, которая кэширует байт-код php скриптов, для их последующего быстрого исполнения. Также php скрипты начнут потреблять значительно меньше оперативной памяти.

Установка eaccelerator несложная, даже можно сказать примитивная. Для того чтобы установить его, вам потребуется программа для подключения к серверу по SSH протоколу, например программой Putty.

Теперь, когда терминал загружен и работает, нам нужно прописать команду, чтобы скачать библиотеку php – developer, которая требуется для установки и настройки eaccelerator.

apt-get install php5-dev


Далее, после установки библиотеки мы можем приступить к скачиванию дистрибутива eaccelerator и его последующей установки.


wget https://github.com/eaccelerator/eaccelerator/zipball/master
unzip master.zip
cd eaccelerator-eaccelerator-42067ac
phpize
./configure
make
make install


eAccelerator установлен, но для того чтобы он заработал надо создать файл конфигурации:

nano /etc/php5/conf.d/eaccelerator.ini


и прописать в нем:


extension="eaccelerator.so"
eaccelerator.shm_size="32"
eaccelerator.cache_dir="/var/cache/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="3600"
eaccelerator.shm_ttl="1800"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
# Раскомментировать при необходимости сохранения кэша только в памяти
#eaccelerator.keys = "shm_only"
#eaccelerator.sessions = "shm_only"
#eaccelerator.content = "shm_only" 


Так же нужно создать папку для кеша и поставить ей права на запись:

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


Рассмотрим конфиг поподробнее:

eaccelerator.shm_size

выделяемая оперативная память под кэширование байт-кода скриптов. По умолчанию значение – 0, но чисто для своего блога я выделяю 64 мегабайта. А там чем больше, тем лучше.

eaccelerator.cache_dir

каталог (папка) хранящая кэш файлы байт-кода.

eaccelerator.enable

включение и отключение eaccelerator. Значения 1 и 0 соответственно.

eaccelerator.optimizer

включение и отключение оптимизатора, который может ускорить выполнение скрипта до кэширования его байт-кода. Значения 1 и 0 соответственно.

eaccelerator.debug

включение и отключение отладчика. Смысл в нем есть, но только когда вы занимаетесь отладкой Eaccelerator, так как все ошибки будут записываться в лог файл. Значения 1 и 0 соответственно.

eaccelerator.check_mtime

включение и отключение проверки времени изменения скриптов. Значения 1 и 0 соответственно. Функция полезна тем, что не приходится каждый раз удалять кэш байт-кода скриптов вручную, но она и потребляет ресурсы на это. Лично у себя оставил включенным, так как если внесу изменения в php скрипт, то не придется удалить его кэш байт-кода вручную.

eaccelerator.filter

сюда вы можете написать шаблон, который будет: только кэшировать php скрипты определенного расширения (например: «*. PHP *. Phtml»), или не кэшировать определенные расширения php скриптов (например: «!*. PHP *. Phtml»). Значение по умолчанию «» – кэшировать все расширения скриптов.

eaccelerator.shm_max

максимально выделяемая оперативная память под кэширование байт-кода скриптов. По умолчанию значение – 0, а так значение можно указать в мегабайтах -128M, 256M и т.д.

eaccelerator.shm_ttl

время хранения кэшированных скриптов. Например, если у eaccelerator не хватает выделенной памяти, то он пытается удалить старый кэш, к которому не было обращений в течение заданного времени. Значение по умолчанию 0, но лично я поставил 3600 секунд. Так как если оставить значение 0, то удаляться старый кэш не будет.

eaccelerator.shm_prune_period

время хранения кэшированных скриптов. Например, если у eaccelerator не хватает выделенной памяти, то он пытается удалить старый кэш, который пытался удалить eaccelerator более “заданное время” тому назад. Значение по умолчанию 0, но лично я поставил 1800 секунд.

eaccelerator.shm_only

включение и отключение хранения кэшированных скриптов на диске. Значение по умолчанию 0, которое позволяет использовать диск и оперативную память для хранения кэша. Значения 0 и 1 соответственно.

eaccelerator.compress

включение и отключение сжатия содержимого скриптов перед его кэшированием. Значения 1 и 0 соответственно.

eaccelerator.compress_level

уровень сжатия содержимого скриптов. Значения от 1 до 9. По умолчанию устанавливается значение 9, которое является максимальным уровнем сжатия.

Вот в принципе и все основные настройки. Но, eaccelerator также может кэшировать и контент страницы. Для этого отведена отдельная настройка.

eaccelerator.content

включение и отключение кэширования контента. Значения: none – не кэшировать, disk_only – сохранять кэш на диске, shm_only – сохранять кэш в памяти, shm_disk – сохранять кэш в памяти и на диске.

После установки eaccelerator, может перестать работать phpmyadmin. Паниковать не стоит, так как решение тут простое, а именно отключить eaccelerator для phpmyadmin. Для этого вносим в конфигурационный файл apache для phpmyadmin, следующую настройку. Файл находится тут: /etc/phpmyadmin/apache.conf
<Directory /usr/share/phpmyadmin>
php_admin_value eaccelerator.enable 0
</Directory>


После внесения изменений требуется перезагрузить apache или nginx и php5-fpm.

/etc/init.d/apache2 restart

/etc/init.d/php5-fpm restart


После этого все должно работать, как часики и нагрузка на сервер должна сократиться в несколько раз.

При возникновении ошибки:
Could not allocate 67108864 bytes, the maximum size the kernel allows is 33554432 bytes. Lower the amount of memory request or increase the limit in /proc/sys/kernel/shmmax.

Делаем:
echo 67108864 > /proc/sys/kernel/shmmax

echo "kernel.shmmax=67108864" >> /etc/sysctl.conf

0 комментариев

Оставить комментарий