Ключевые слова:php, tune, optimization, speed, (найти похожие документы)
From: dedicatesupport.com
Date: Mon, 3 Jan 2008 14:31:37 +0000 (UTC)
Subject: ускорение работы php приложений при помощи eAccelerator
Оригинал: http://dedicatesupport.com/
Что такое 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.ta
r.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
тогда кеш хранится только в памяти, так что он, конечно, не выживает между перезапусками, но если сервер не перегружается три аза на дню, все вполне неплохо. Зато пропадает возня с файлами кеша на диске.