Данная статья устарела, оставлена исключительно для желающих покомпилировать eAccelerator. Остальным людям предлагаю поставить php5.5 из репозитария (с опкешем xcache), т.к. в нем он относительно свежий и телодвижений требуется совершить меньше.
Продолжаю повествования о настройки VDS. Теперь будем ставить eAccelerator — кеш опкода PHP. Делать будем опять из сырцов, т.к. пакета под нашу сборку вряд ли найдем. В этот раз все более чем просто. Для начала убедимся что у нас стоят инструменты для сборки PHP из поста про сборку PHP5.3 из сырцов. Если php вы ставили как-то иначе, то инструменты вам все равно придется доставить. Так же нам потребуется unzip, если не стоит, то доставить можно так:
sudo apt-get install unzip
Установка
Скачаем сырцы eAccelerator версии не ниже 0.9.6.1 (нже с php5.3 не работает):
cd /usr/local/src sudo wget -O ./eaccelerator-0.9.6.1.zip http://sourceforge.net/projects/eaccelerator/files/eaccelerator/eAccelerator%200.9.6.1/eaccelerator-0.9.6.1.zip/download
Официальный сайт где-то потерял ссылки на скачивание, по этому берем ссылки с sourceforge — там есть копия eAccelerator. Распаковываем:
sudo unzip ./eaccelerator-0.9.6.1.zip sudo rm ./eaccelerator-0.9.6.1.zip
Теперь непосредственный процесс сборки:
cd /usr/local/src/eaccelerator-0.9.6.1 sudo /usr/local/php/bin/phpize sudo ./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config sudo checkinstall --type=debian --default
Самое сложное здесь — подобрать —with-php-config — т.е. надо учесть путь, куда был установлен ваш php. Так же надо найти phpize (whereis phpize). Поскольку php мы ставили с префиксом /usr/local/php/ то все пути у нас будут относительно этого. Еще вариант — вызвать из php функцию phpinfo(); и поглядеть Configure Command — в нем будет параметр —prefix. Если его нет, то php поставлен с дефолтными путями.
Конфигурация
В открываем конфиг php — у нас он находится по адресу /usr/local/php/etc/php.ini
Дописываем в него следующие строки:
[eAccelerator] extension="eaccelerator.so" eaccelerator.shm_size="32" eaccelerator.shm_ttl="0" eaccelerator.shm_prune_period="0" eaccelerator.shm_only="0" eaccelerator.shm_max="0" eaccelerator.cache_dir="/var/cache/eaccelerator" eaccelerator.enable="1" eaccelerator.optimizer="1" eaccelerator.check_mtime="1" eaccelerator.debug="0" eaccelerator.filter="" eaccelerator.compress="1" eaccelerator.compress_level="9"
eaccelerator.shm_size — shared memory конфигурируется под систему. По дефолту на моем сервере без переконфигурации ядра можно было выставить 32МБ — мне более чем хватает. Поглядеть сколько разрешено спользовать shared memory можно так:
sysctl -A | grep kernel.shmmax
Значения указаны в байтах, перевод в мегабайты — деление на 1048576. Поскольку eaccelerator.shm_only выключен — излишки должны записываться на диск. Если надо выставить в конфиге больше чем разрешено в системе, то идем в /etc/sysctl.conf и разрешаем приложениям использовать больше shared memory примерно так:
kernel.shmmax = 134217728
Далее обновляем sysctl:
sudo sysctl -p
Создадим папку под кеш акселератора:
sudo mkdir -p /var/cache/eaccelerator sudo chmod 0777 /var/cache/eaccelerator
Перезапускаем php-fpm:
sudo service php-fpm restart
Теперь если заглянуть в phpinfo() сервера, то можно увидеть что акселератор добавился.
[…] Установка eAccelerator из сырцов. […]