EAccelerator

Матеріал з Wiki Welard
Перейти до навігації Перейти до пошуку

[eAccelerator | - ускорение работы php приложений.]

Что такое eAccelerator? eAccelerator это свободно-распространяемый PHP акселератор, оптимайзер и средство для кеширования динамического контента. Он увеличивает производительность PHP скриптов за счет их кеширования в скомпилированном состоянии, тем самым предотвращая их постоянную перекомпиляцию. В результате происходит увеличение скорости их выполнения. eAccelerator обычно уменьшает нагрузку на сервер и увеличивает скорость исполнения PHP кода на величину от 1 до 10 раз. В результате моих экспериментов, было выяснено, что скорость выдачи контента, например, для сайтов на Drupal увеличивается до 30 раз!!! В этой маленькой заметке опишу процесс установки eAccelerator на linux систему. Итак приступим. Домашняя страница проекта http://eaccelerator.net/ Выбираем последнюю версию. На данный момент последней версией является 0.9.5.2. Скачиваем и распаковываем ее.

   cd /usr/local/src
   wget http://bart.eaccelerator.net/source/0.9.5.2/eaccelerator-0.9.5.2.tar.bz2
   bzip2 -d eaccelerator-0.9.5.2.tar.bz2
   tar xvf eaccelerator-0.9.5.2.tar
   cd eaccelerator-0.9.5.2

Далее необходимо проверить есть ли в нашей системе необходимые для создания модуля php пакеты. Нам нужны:

   * apache >= 1.3,
   * mod_php >= 4.1,
   * autoconf,
   * automake,
   * libtool,
   * m4

Если производилась установка веб сервера, и php из пакетов то нам необходимо установить еще и модуль php-devel. Именно в нем находится необходимая нам программа phpize, с помощью которой и происходит компиляция модулей для php.

   yum install php-devel

Далее выясняем местоположение файла phpize с помощью команды:

   whereis phpize

И смотрим путь до файла. Обычно это /usr/bin/phpize. В таком случае для компиляции модуля выполняем следующие действия:

   export PHP_PREFIX="/usr"
   $PHP_PREFIX/bin/phpize
   ./configure \
   --enable-eaccelerator=shared \
   --with-php-config=$PHP_PREFIX/bin/php-config
   make
   make install

Далее находим файл php.ini (обычно он находится в /etc/php.ini) и прописываем в нем следующие строки:

extension="eaccelerator.so" eaccelerator.shm_size="16" eaccelerator.cache_dir="/tmp/eaccelerator" 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="0" eaccelerator.compress="1" eaccelerator.compress_level="9"

Это для варианта использования eAccelerator как расширения php. Я использую такой подход. Есть еще вариант использования eAccelerator как расширения Zend. В таком случае прописать нужно следующие строки:

zend_extension="/usr/lib/php4/eaccelerator.so" eaccelerator.shm_size="16" eaccelerator.cache_dir="/tmp/eaccelerator" 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="0" eaccelerator.compress="1" eaccelerator.compress_level="9"

Далее настал черед создания каталога, котрый будет использовать eaccelerator для хранения своего кеша:

   mkdir /tmp/eaccelerator
   chmod 0777 /tmp/eaccelerator

Далее перезапускаем наш апач:

   service httpd restart

и радуемся ускорению. Ну в общем и все. Как всегда, жду ваших замечаний и предложений.

P.S. Если кому-нибудь нужны мои заметки, пожалуйста берите. Только оставьте ссылку на http://dedicatesupport.com