27 марта 2009 г. FreeBSD PHP Кеш

FreeBSD. Установка и настройка eAccelerator

eaccelerator

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

eAccelerator обычно уменьшает нагрузку на сервер и увеличивает скорость исполнения PHP кода в 1-10 раз.

http://www.eaccelerator.net/

Установка

Воспользуемся установкой через систему портов. Желательно порты обновить через portsnap!
Поехали,

cd /usr/ports/www/eaccelerator
make install clean

Настройка

Создадим директорию для кеша:

mkdir /tmp/eaccelerator
chmod 775 /tmp/eaccelerator

Создадим файл для лога:

touch /var/log/eaccelerator_log
chmod 775 /var/log/eaccelerator_log

Отредактируем файл php.ini

vi /usr/local/etc/php.ini


Добавим следующее содержимое:

[eAccelerator]

; Подключаем модуль
extension="eaccelerator.so"

; Размер кеша, в МБ
eaccelerator.shm_size="16"

; Путь до каталога файлов кеша
eaccelerator.cache_dir="/tmp/eaccelerator"

; Переключатель модуля (1 - вкл и 0 - выкл)
eaccelerator.enable="1"

; Переключатель оптимизатора  (1 - вкл и 0 - выкл)
eaccelerator.optimizer="1"

; Добавляет отладочную информацию в лог (1 - вкл и 0 - выкл)
eaccelerator.debug="0"

; Путь до файла лога
eaccelerator.log_file = "/var/log/eaccelerator_log"

; Проверять время модификации файлов кеша для перекомпиляции оных (1 - вкл и 0 - выкл)
eaccelerator.check_mtime="1"

; Фильтр расширений файлов которых надо кешировать. Например, "*.php *.phtml".
eaccelerator.filter=""

; Размер выделяемой памяти, в байтах. Допустимо вводить в формате 10240, 10K, 1M и т.д. При 0 - безлимит
eaccelerator.shm_max="0"

; Время жизни кеша, сек
eaccelerator.shm_ttl="120"

; Период удаления старых данных из памяти, сек (при 0 не удаляет)
eaccelerator.shm_prune_period="0"

; Использовать для кеша только память. При 0 используется диск и память
eaccelerator.shm_only="0"

; Переключатель компресии (1 - вкл и 0 - выкл)
eaccelerator.compress="1"

; Степень сжатия
eaccelerator.compress_level="9"

Ребутнём индейца:

apachectl restart

Вот и все, кеширование работает!
Дополнительные настройки на английском тут.

Комментарии

Спасибо за полезную инфу. Получилось установить надстройку.

Всегда пожалуйста! :)

Еще один пункт который позволит ускорить работу скриптов это монтировать кэш еаккселератора в память.
В линуксе это делатеся строчкой в фстаб:

none  /var/eaccelerator tmpfs size=96M,nr_inodes=10M,mode=0777 0 0

Во фре не думаю что сложнее )

Евгений, а разве "eaccelerator.shm_only" не поможет хранить кеш только в памяти?

гм. и зачем же я так извратился - не понятно.
:)

Делать диск в памяти и писать на него данные необходимо когда у вас запущено несколько fast-cgi процессов php (так бывает на хостингах). Делать это надо потому, что если eaccelerator хранит данные в памяти, то они НЕ шарятся между процессами. А если данные хранятся ТОЛЬКО на виртуальном диске то эти данные шарятся между процессами.

а зачем хранить кэш в темпе? после перезагрузки он ведь обнулится.

и еще вдогону вопрос. worker или prefork?

как проверить работает или нет ?
сделал всё по инструкции - phpinfo нет ни слова о eaccelerator

GTAlex, вы перезагружали вебсервер? Что говорит

php -m
?

всё - настроил, как раз помог php -m
опечатка в php.ini была
спасибо

ещё бы Zend Optimizer прикрутить - вообще счастье было бы, а то скрипты есть покупные зендом закодированные, а вставать из портов не хочет :(
ругается на PHP 5й версии (у меня 5.3.2)
не поможешь советом :) ?

Вообще на фре зенд оптимизер фигово работает, разработчики зенд оптимизера ленятся и не делаю для фряхи порты

Сделал все по инструкции.
phpinfo() выдает такую хрень:

eAccelerator support enabled
Version 0.9.6
Caching Enabled false
Optimizer Enabled false
Check mtime Enabled false

Вы уверены что у вас именно так:


eaccelerator.enable = "1"
eaccelerator.optimizer = "1"

?

Какая OS?

Именно так )
Ось FreeBSD 7.2

error-log пуст? может у вас нет прав для каталога хранения кеша, или например файл лога не может писаться и т.д.?

Александр 2 августа 2010 г. 23:49

Проблема EA с последними версиями PHP..

Подскажите нужно ли править код сайта под eAccelerator ?

я не специалист, по этому сори за глупые вопросы

Спасибо за пост.Сайты на WP занимали 25-30мб, сейчас 10-11мб.

FreeBSD 10. На make install clean говорит:
===> eaccelerator-0.9.7 cannot be installed: doesn't work with lang/php56 port (doesn't support PHP 5.5 5.6).
* Error code 1

Stop.
make: stopped in /usr/ports/www/eaccelerator

Это нормально?

Оставьте свой комментарий

Markdown