eAccelerator - ускорение работы php приложений. | Выделенный сервер своими руками

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

а нагрузку от wordpress

а нагрузку от wordpress сильно поможет снизить, не знаете?

> Проверьте сайт

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

Подобные сайты не шибко и нуждаются в ускорении.
Посещаемость то какая?

Вы не прав, коллега. Ускороение нужно хотя бы для того чтобы вы могли слушать музыку с моего свйта http://gallery.vkimo.org/v/mmyun/

Посещение слабое. Да это и не ставилось целью. Сайт для "своих" а сервер стоит у меня в гараже (г. Тампа, Флорида) на обычном чиповом (7 Mbps) кабеле.
После ряда экспериментов перевёл сервер на Zend Server CE http://www.zend.com/en/products/server-ce/downloads. Инсталляция как песня. Пришлось немного поломать голову как заставить апач выдавать сайты с директории напрямую чтобы не утрудать себя пропиской отдельных файлов для каждого сайта. ZS CE имеет всё что нужно для моих потребностей APC, Memcached module и т.п. Рекомендую. Не в качестве рекламы :)) Zend знают все админы. А этот Free. Т.е как Free Beer - и вкусно и на душе приятно.

Нужна помощь в том чтобы

Нужна помощь в том чтобы подружить Zend server CE и Plesk Panel, срочно!

> Exaktus says: > А как со

> Exaktus says:

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

У него проблема с блокировками. Поищите "eAccelerator locks"

Прочитаете много интересного. С этим можно бороться.

> Artur Shakirov says: >

> Artur Shakirov says:

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

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

А по другим обзорам - APC сливает обоим
Так что думай сам

У себя в блоге я писал

У себя в блоге я писал небольшую статью про оптимизацию вэб сервера, получилось не плохо. Так как-раз используется APC, он более быстрый именно на старых машинах.
Сервер на стероидах, или выжимаем из барахла всё!

> lumb says: >Добрый день!

> 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 и пр....

> Проверьте сайт

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

Подобные сайты не шибко и нуждаются в ускорении.
Посещаемость то какая?

>Val says: >А за фигом вам

>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

Добрый день! Спасибо за

Добрый день! Спасибо за статью, но у меня не выходит поставить на 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

подскажите знающие люди, как быть?

у меня вопрос к автору php

у меня вопрос к автору

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

что это может быть, пути все прописаны верно

Посмотреть можно через PHP,

Посмотреть можно через PHP, создав файл с phpinfo();, на этой странице должен быть блок с eAccelerator

Еще можно посмотреть появились ли файлы в /tmp/eaccelerator
Спасибо автору!

А как узнать установился этот

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

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

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

А за фигом вам всем Apache

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

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

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

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

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

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

У меня при выполнении команды

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

проводил сравнительные тесты

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

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

Сейчас поставил его на оба

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

Да, Все нормально. Связка

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

eAccelerator работает только

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

Спасибо вам за статью.

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

Самое главное не забыть

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

Да пишут что все хорошо. У

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

А как со стабильностью?

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

Для Debian есть собранный в

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

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

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

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

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

брр в смысле для 64 тока #

брр в смысле для 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

лол =) # su - # wget

лол =)
# 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ку ставил :)

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

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

Здорово. Поднял

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

10x ;) nice how to :)

10x ;) nice how to :)

А где Вы, уважаемый daiver, в

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

Зачем такие

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

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.

А вот пример установки на

А вот пример установки на FreeBSD Установка и настройка eAccelerator FreeBSD

php5-2-17. После установки из

php5-2-17. После установки из портов и добавления
zend_extension="/usr/local/lib/php/20060613-zts/eaccelerator.so"
в php -v без изменений.

Где глянуть чего не хватает для работы?

[...] Что такое eAccelerator?

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

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

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

Неужели и правда

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

Это не правда, а известие

Зендить то может быть и проще, но если дают инструмент для ускорения, то грех им не воспользоваться. С уважением стоматология