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
Неужели и правда ускоряет?!
↓ Quote | Posted December 13, 2007, 5:29 pmЯ думал зендить проще.
Еще как ускоряет.
↓ Quote | Posted December 13, 2007, 5:48 pm[…] Что такое eAccelerator? - eAccelerator это свободно-распространяемый PHP акселератор, оптимайзер и средство для кеширования динамического контента. Он увеличивает производительность PHP скриптов за счет их кеширования в скомпилированном состоянии, тем самым предотвращая их постоянную перекомпиляцию. В результате происходит увеличение скорости их выполнения. eAccelerator обычно уменьшает нагрузку на сервер и увеличивает скорость исполнения PHP кода на величину от 1 до 10 раз. Дальше […]
↓ Quote | Posted December 14, 2007, 1:04 amЗачем такие сложности.
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А где Вы, уважаемый daiver, в моей заметке увидели сложности?
↓ Quote | Posted December 14, 2007, 9:27 am10x
nice how to 
↓ Quote | Posted December 14, 2007, 11:38 amЗдорово. Поднял производительность на 20% примерно. Спасибо за статью.
↓ Quote | Posted December 14, 2007, 12:13 pmПользуйтесь на здоровье!
↓ Quote | Posted December 14, 2007, 12:28 pmлол =)
↓ Quote | Posted December 17, 2007, 1:36 pm# 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ку ставил
брр в смысле для 64 тока
↓ Quote | Posted December 17, 2007, 1:40 pm# 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, 2:09 pmА вам спасибо за статью =)
↓ Quote | Posted December 17, 2007, 4:45 pmДля Debian есть собранный в моем репозитории.
↓ Quote | Posted December 17, 2007, 6:03 pmА как со стабильностью? Раньше, при повышении нагрузки, акселератор частенько намертво вешал апач. Как с этим сейчас?
↓ Quote | Posted January 7, 2008, 6:57 pmДа пишут что все хорошо. У меня не виснет. Хотя я его не испытывал на высоких нагрузках.
↓ Quote | Posted January 7, 2008, 10:08 pmСамое главное не забыть добавить
↓ Quote | Posted February 18, 2008, 2:26 pmeaccelerator.debug=”0″
А то будет как у меня…
Спасибо вам за статью. Скопирую к себе в блог - чтобы не терялась. Линк канечно же воткну.
↓ Quote | Posted March 31, 2008, 4:08 pmeAccelerator работает только под апачем 1,3 или работает в связке с php5 + Apache 2.2.8 нормально? никто не пробовал?
↓ Quote | Posted April 13, 2008, 9:10 pmДа, Все нормально.
↓ Quote | Posted May 26, 2008, 8:17 pmСвязка php 5.2.5 + Apache 2.2.8 +eAccelerator работает отлично ) Спасибо автору за статью
Сейчас поставил его на оба свои сервера с хостингом… посомтрим что получится)
↓ Quote | Posted June 28, 2008, 9:03 pmпроводил сравнительные тесты различных акселераторов.. вот например xCache и eAccelerator http://itblog.su/xcache-vs-eaccelerator.html
делал ещё общирный и более обьективный по всем поддерживаемым разработкам, данные не снимал.. вобщем итог таков что АРС рулит.
↓ Quote | Posted August 24, 2008, 1:21 amУ меня при выполнении команды “$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В Дебиане все попроще как-то будет.
# apt-get install php5-xcache или # apt-get install php-apc
# /etc/init.d/lighttpd restart
Все
↓ Quote | Posted November 6, 2008, 5:09 amПравда здесь юзаются XCache или APC, но в среднем все это одно и то же.
А за фигом вам всем Apache сдался NGINX+Php-Fpm+Eaccelerator = Perfect server. Ещё научиться как заставить memcached вытягивать то, чего он туда не ложил и получится ваще High Speed
Проверьте сайт http://vkimo.org , memcached пока ещё едва дышит, но научим (ся)
↓ Quote | Posted November 6, 2008, 9:49 amА как узнать установился этот eAccelerator или нет. Я делал все по инструкции, но все равно вроде бы ошибки выскакивали. В списке модулей его не нашел (панель Plesk). Относительно ускорения пока не заметил, но может он и не установился.
Как узнать это?
П.С. Спасибо за столь подробную инструкцию по установки модуля, подойдет даже таким ламерам как я, которые в линуксе 0.
↓ Quote | Posted December 18, 2008, 7:07 pm