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Посмотреть можно через PHP, создав файл с phpinfo();, на этой странице должен быть блок с eAccelerator
Еще можно посмотреть появились ли файлы в /tmp/eaccelerator
↓ Quote | Posted February 27, 2009, 1:51 pmСпасибо автору!
у меня вопрос к автору
php -v
PHP Warning: PHP Startup: Unable to load dynamic library ‘.//usr/local/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so’ – .//usr/local/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP 5.2.9 (cli) (built: Mar 6 2009 04:17:41)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies
with Zend Extension Manager v1.2.2, Copyright (c) 2003-2007, by Zend Technologies
with Zend Optimizer v3.3.3, Copyright (c) 1998-2007, by Zend Technologies
что это может быть, пути все прописаны верно
↓ Quote | Posted March 23, 2009, 9:42 pmДобрый день! Спасибо за статью, но у меня не выходит поставить на CentOS5.2 php5.2.9 Apache2.2.8
все прекрашается на стадии yum install php-devel с ошибкой и что с ней делать, ума не приложу, а акселератор ох как нужен -)
Error: Missing Dependency: php = 5.1.6-20.el5_2.1 is needed by package php-devel
подскажите знающие люди, как быть?
↓ Quote | Posted April 6, 2009, 9:44 am>Val says:
>А за фигом вам всем Apache сдался NGINX+Php-Fpm+Eaccelerator = Perfect server. Ещё научиться как заставить memcached вытягивать >то, чего он туда не ложил и получится ваще High Speed
>Проверьте сайт http://vkimo.org , memcached пока ещё едва дышит, но научим (ся)
Вы не правы. Сошлюсь на:
http://dklab.ru/chicken/nablas/49.html
а также на мнение Тутубалина в интервью “После Спамтеста я зауважал Microsoft”, где он не считает необходимы так оголтело отказываться от Апача.
Уже не говоря о том что для сложной системы (скажем Gallery2, Drupal’овские модуля типа Imagecache) задолбаетесь настраивать правила rewrite для nginx
↓ Quote | Posted May 15, 2009, 1:16 pm> Проверьте сайт http://vkimo.org , memcached пока ещё едва дышит, но научим (ся)
Подобные сайты не шибко и нуждаются в ускорении.
↓ Quote | Posted May 15, 2009, 1:18 pmПосещаемость то какая?
> lumb says:
>Добрый день! Спасибо за статью, но у меня не выходит поставить на CentOS5.2 php5.2.9 Apache2.2.8
>все прекрашается на стадии yum install php-devel с ошибкой и что с ней делать, ума не приложу, а акселератор ох как нужен -)
>Error: Missing Dependency: php = 5.1.6-20.el5_2.1 is needed by package php-devel
>подскажите знающие люди, как быть?
Воспользоваться другим акселератором – их много
eAccelerator, APC, XCache и пр….
↓ Quote | Posted May 15, 2009, 1:19 pm> Artur Shakirov says:
> проводил сравнительные тесты различных акселераторов.. вот например xCache и eAccelerator http://itblog.su/xcache-vs-eaccelerator.html
> делал ещё общирный и более обьективный по всем поддерживаемым разработкам, данные не снимал.. вобщем итог таков что АРС рулит.
А по другим обзорам – APC сливает обоим
↓ Quote | Posted May 15, 2009, 1:21 pmТак что думай сам
> Exaktus says:
> А как со стабильностью? Раньше, при повышении нагрузки, акселератор частенько намертво вешал апач. Как с этим сейчас?
У него проблема с блокировками. Поищите “eAccelerator locks”
Прочитаете много интересного. С этим можно бороться.
↓ Quote | Posted May 15, 2009, 1:23 pm> Проверьте сайт http://vkimo.org , memcached пока ещё едва дышит, но научим (ся)
Подобные сайты не шибко и нуждаются в ускорении.
Посещаемость то какая?
Вы не прав, коллега. Ускороение нужно хотя бы для того чтобы вы могли слушать музыку с моего свйта http://gallery.vkimo.org/v/mmyun/
Посещение слабое. Да это и не ставилось целью. Сайт для “своих” а сервер стоит у меня в гараже (г. Тампа, Флорида) на обычном чиповом (7 Mbps) кабеле.
) Zend знают все админы. А этот Free. Т.е как Free Beer – и вкусно и на душе приятно.
↓ Quote | Posted August 28, 2009, 11:22 amПосле ряда экспериментов перевёл сервер на Zend Server CE http://www.zend.com/en/products/server-ce/downloads. Инсталляция как песня. Пришлось немного поломать голову как заставить апач выдавать сайты с директории напрямую чтобы не утрудать себя пропиской отдельных файлов для каждого сайта. ZS CE имеет всё что нужно для моих потребностей APC, Memcached module и т.п. Рекомендую. Не в качестве рекламы