замечательнейшая вещь, позволяющая кешировать исполняемый код PHP, с его помощь можно значительно повысить скорость работы с сайтом. К сожалению в Debian Lenny отсутствует пакет с eAccelerator, поэтому устанавливать этот модуль будем ручками из исходников.
Для начала установим необходисые для сборки пакеты:
# apt-get install build-essential php5-dev
Теперь можно скачать eAccelerator, предварительно убедившись, что качаем :
# cd /usr/src
# wget http://bart.eaccelerator.net/source/0.9.5.3/eaccelerator-0.9.5.3.tar.bz2
# tar xvfj eaccelerator-0.9.5.3.tar.bz2
# cd eaccelerator-0.9.5.3
Теперь конфигурируем и ставим:
# phpize
# ./configure
# make
# make install
Первый этап установки завершен, осталось только сконфигурировать PHP. Идем в /etc/php5/conf.d/ и создаем файл
eaccelerator.ini:
; Подключаем собственно само расширение
extension="eaccelerator.so"
; Следущая опция собственно включает сам eAccelerator
eaccelerator.enable="1"
; Максимальный размер кеша в мегабайтах
eaccelerator.shm_size="64"
; Корневой каталог для хранения кеша
eaccelerator.cache_dir="/var/cache/eaccelerator"
; Подключить или отключить встроенный оптимайзер
; которые увеличивает скорость выполнения кода
eaccelerator.optimizer="1"
; Включаем проверку модификации PHP файлов. Поставьте
; "1" если требуется, чтобы проверялись все модифицированные
; файлы и перекомпиливались заново.
eaccelerator.check_mtime="1"
; Режим отладки. Если поставить 1 или вообще
; забыть упомянуть этот параметр, при большой
; посещаемости загадит логи Apache за считанные часы.
eaccelerator.debug="0"
; Здесь можно определить можно определить, какие
; файлы должны быть кешированы. По-умолчанию если
; здесь ничего не указано, то кешируются все файлы.
; Для расширенного использования прочитайте документацию.
eaccelerator.filter=""
; Максимально допустимое значение которое может быть
; отправлено в разделяемую память. По-умолчанию,
; "ноль" - без ограничений. Размер указывается в байтах,
; но можно указать приставки, например: 10240, 10K, 1M.
eaccelerator.shm_max="0"
; Когда акселлератору потребуется отправить в разделяемую
; память какой-то объект и при этом в памяти для этого
; не окажется места, он попытается удалить файлы, которые
; не были запрошены в течении последних "shm_ttl" секунд.
; По-умолчанию, это значение равно "0" - не удалять ничего.
eaccelerator.shm_ttl="3600"
; Когда акселлератору потребуется отправить в разделяемую
; память какой-то объект и при этом в памяти для этого
; не окажется места, он попытается удалить старые скрипты,
; если предыдущие такие попытки были не больше, чем
; "shm_prune_period" секунд назад.По-умолчанию, это значение
; равно "0" - не удалять ничего.
eaccelerator.shm_prune_period="0"
; Включить или отключить кеширование скомпиленных скриптов
; _только_ на диск. Этот параметр не влияет на данные сессий
; и кеширование контента. По-умолчанию, значение 0, что означает
; что данные будут кешироваться и в памяти и на диске.
eaccelerator.shm_only="0"
; Включить или отключить сжатие закешированного контента.
; По-умолчанию, "1" - сжимать.
eaccelerator.compress="1"
; Уровень сжатия. По-умолчанию, "9" - максимум.
eaccelerator.compress_level="9"
Больше настроек можно посмотреть здесь
Не забываем про папку с кешем:
mkdir -p /var/cache/eaccelerator
chmod 0777 /var/cache/eaccelerator
Все!
Можно ребутнуть web-сервер (если у вас Apache):
#/etc/init.d/apache2 restart
C помощью функции phpinfo() убеждаемся что все работает.
P.S. Одно очень важное замечание – если вы обновите пакет PHP то Apache рухнет, потому что версия eAccelerator не соответствует версии PHP. Чтобы устранить ошибку необходимо заново перекомпилировать eA.
