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

Рейтинг@Mail.ru

2007 rolex yachtmaster, 16628 model
Удобно плакаты для фирмы
С доставкой витраж в бревенчатый дом
Эксклюзивно жалюзи для директора

25 Comments


  1. Неужели и правда ускоряет?!
    Я думал зендить проще.

    Quote | Posted December 13, 2007, 5:29 pm

  2. Еще как ускоряет. :-)

    Quote | Posted December 13, 2007, 5:48 pm

  3. […] Что такое eAccelerator? - eAccelerator это свободно-распространяемый PHP акселератор, оптимайзер и средство для кеширования динамического контента. Он увеличивает производительность PHP скриптов за счет их кеширования в скомпилированном состоянии, тем самым предотвращая их постоянную перекомпиляцию. В результате происходит увеличение скорости их выполнения. eAccelerator обычно уменьшает нагрузку на сервер и увеличивает скорость исполнения PHP кода на величину от 1 до 10 раз. Дальше […]

    Quote | Posted December 14, 2007, 1:04 am

  4. Зачем такие сложности.

    CentOS4

    #cd /usr/src && wget http://bart.eaccelerator.net/source/0.9.5.2/eaccelerator-0.9.5.2.tar.bz2 && tar xvjf eaccelerator-0.9.5.2.tar.bz2 && cd eaccelerator-0.9.5.2 && phpize && ./configure && make && make install && mkdir /tmp/eaccelerator && chmod 777 /tmp/eaccelerator

    #php -i |grep php.ini

    vi [path to php.ini]

    zend_extension=”/usr/lib/php/extensions/no-debug-non-zts-20060613/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″

    /usr/lib/php/extensions/no-debug-non-zts-20060613/ - путь до либов php.

    Quote | Posted December 14, 2007, 1:54 am

  5. А где Вы, уважаемый daiver, в моей заметке увидели сложности? :-)

    Quote | Posted December 14, 2007, 9:27 am

  6. 10x ;) nice how to :)

    Quote | Posted December 14, 2007, 11:38 am

  7. Здорово. Поднял производительность на 20% примерно. Спасибо за статью.

    Quote | Posted December 14, 2007, 12:13 pm

  8. Пользуйтесь на здоровье! :-)

    Quote | Posted December 14, 2007, 12:28 pm

  9. лол =)
    # su -
    # wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-2.noarch.rpm
    # wget http://remi.collet.free.fr/rpms/el5.i386/remi-release-5-3.el5.remi.noarch.rpm rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm
    # yum install php-eaccelerator
    я так на свою 64ку ставил :)

    Quote | Posted December 17, 2007, 1:36 pm

  10. брр в смысле для 64 тока
    # wget http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-2.noarch.rpm
    # wget http://remi.collet.free.fr/rpms/el5.x86_64/remi-release-5-3.el5.remi.noarch.rpm
    # rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm

    Quote | Posted December 17, 2007, 1:40 pm

  11. Тоже верно. Спасибо за ценный коммент.

    Quote | Posted December 17, 2007, 2:09 pm

  12. А вам спасибо за статью =)

    Quote | Posted December 17, 2007, 4:45 pm

  13. Для Debian есть собранный в моем репозитории.

    Quote | Posted December 17, 2007, 6:03 pm

  14. А как со стабильностью? Раньше, при повышении нагрузки, акселератор частенько намертво вешал апач. Как с этим сейчас?

    Quote | Posted January 7, 2008, 6:57 pm

  15. Да пишут что все хорошо. У меня не виснет. Хотя я его не испытывал на высоких нагрузках.

    Quote | Posted January 7, 2008, 10:08 pm

  16. Самое главное не забыть добавить
    eaccelerator.debug=”0″
    А то будет как у меня… ;)

    Quote | Posted February 18, 2008, 2:26 pm

  17. Спасибо вам за статью. Скопирую к себе в блог - чтобы не терялась. Линк канечно же воткну.

    Quote | Posted March 31, 2008, 4:08 pm

  18. eAccelerator работает только под апачем 1,3 или работает в связке с php5 + Apache 2.2.8 нормально? никто не пробовал?

    Quote | Posted April 13, 2008, 9:10 pm

  19. Да, Все нормально.
    Связка php 5.2.5 + Apache 2.2.8 +eAccelerator работает отлично ) Спасибо автору за статью

    Quote | Posted May 26, 2008, 8:17 pm

  20. Сейчас поставил его на оба свои сервера с хостингом… посомтрим что получится)

    Quote | Posted June 28, 2008, 9:03 pm

  21. проводил сравнительные тесты различных акселераторов.. вот например xCache и eAccelerator http://itblog.su/xcache-vs-eaccelerator.html

    делал ещё общирный и более обьективный по всем поддерживаемым разработкам, данные не снимал.. вобщем итог таков что АРС рулит.

    Quote | Posted August 24, 2008, 1:21 am

  22. У меня при выполнении команды “$PHP_PREFIX/bin/phpize” выводит вот такую надпись “/user/bin/phpize: line 57: aclocal: command not found” Хотя я выполнил все по инструкции! phpize находиться по умолчанию в /usr/bin/phpize.

    Quote | Posted October 23, 2008, 9:37 am

  23. В Дебиане все попроще как-то будет.

    # apt-get install php5-xcache или # apt-get install php-apc
    # /etc/init.d/lighttpd restart

    Все :)
    Правда здесь юзаются XCache или APC, но в среднем все это одно и то же.

    Quote | Posted November 6, 2008, 5:09 am

  24. А за фигом вам всем Apache сдался NGINX+Php-Fpm+Eaccelerator = Perfect server. Ещё научиться как заставить memcached вытягивать то, чего он туда не ложил и получится ваще High Speed

    Проверьте сайт http://vkimo.org , memcached пока ещё едва дышит, но научим (ся)

    Quote | Posted November 6, 2008, 9:49 am

  25. А как узнать установился этот eAccelerator или нет. Я делал все по инструкции, но все равно вроде бы ошибки выскакивали. В списке модулей его не нашел (панель Plesk). Относительно ускорения пока не заметил, но может он и не установился.

    Как узнать это?

    П.С. Спасибо за столь подробную инструкцию по установки модуля, подойдет даже таким ламерам как я, которые в линуксе 0.

    Quote | Posted December 18, 2008, 7:07 pm

Leave a reply

*
To prove that you're not a bot, enter this code
Anti-Spam Image