eAccelerator
1. Что такое eAccelerator?
eAccelerator является PHP-акселератором, основное назначение которого состоит в кэшировании бинарного представления кода. Каждый раз при выполнении скрипта, PHP читает все подключаемые файлы и переводит их в бинарный код, при запросе скрипта операция повторяется. Задача eAccelerator состоит в сохранении бинарного кода для повторного использования, уменьшая время выполнения скрипта.
Внимание! eAccelerator работает с PHP в режиме fastcgi или mod_php.
2. Установка
Для установки нам нужна утилита phpize, которая содержится в пакете php5-dev.
Code:
apt-get install php5-dev
Качаем последнюю версию eAccelerator (описывать буду на примере версии 0.9.6-rc1)
Code:
cd /usr/local/src/
wget http://bart.eaccelerator.net/source/0.9.6.1/eaccelerator-0.9.6.1.tar.bz2
После скачки нам надо распаковать пакет.
Code:
tar -xjvf eaccelerator-0.9.6.1.tar.bz2
rm eaccelerator-0.9.6.1.tar.bz2
Переходим в папку eaccelerator-0.9.6.1.
Code:
cd eaccelerator-0.9.6.1
Собираем eAccelerator.
Code:
export PHP_PREFIX="/usr"
2.1 Установка для php5
eA имеет специфическую компиляцию для разных версий PHP. Я буду описывать на примере php5. Если вы будете обновлять весию php, то вам надо будет перекомпилировать eA.
Code:
$PHP_PREFIX/bin/phpize5
./configure --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config5 --with-eaccelerator-doc-comment-inclusion
Инсталлируем eAccelerator.
Создаем конфиг файл.
Code:
vi /etc/php5/conf.d/eAccelerator.ini
Но редактор vi мне не оч. удобен, я пользуюсь продвинутым nano.
Code:
nano /etc/php5/conf.d/eAccelerator.ini
Вариантов подключения к PHP два - Zend Extension и обычное расширение. В англоязычном варианте используется 1 вариант, но для себя я делал 2 способом.
Вот мой конфиг:
Code:
extension="eaccelerator.so"
eaccelerator.shm_size="32"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="1"
eaccelerator.compress="0"
eaccelerator.compress_level="9"
далее открывает php.ini
Code:
nano /etc/ispcp/fcgi/parts/php5/php.ini
и добавляем запись:
Code:
[eAccelerator]
eaccelerator.cache_dir = "{WWW_DIR}/{DMN_NAME}/phptmp"
Перезапустим Apache.
Code:
/etc/init.d/apache2 restart
А проверить на работоспособность можно так:
Code:
php -m | grep eAcc
eAccelerator
Если вам нужно установить eaccelerator.shm_size больше 32 мб, то в файле /proc/sys/kernel/shmmax указываем нужное значение в байтах.