Установка eAccelerator из сырцов

Дата Автор cdb1 комментарий

Данная статья устарела, оставлена исключительно для желающих покомпилировать 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_sizeshared 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 из сырцов»

Добавить комментарий

Ваш адрес email не будет опубликован.