eAccelerator является свободным и с открытым исходным кодом – PHP ускоритель и оптимизатор. Он дает производительность скриптов написанных на PHP за счет кэширования их в составленном состоянии, что позволяет сократить расходы на компиляции. Он также оптимизирует сценарии, чтобы ускорить их выполнение. eAccelerator обычно уменьшает нагрузку на сам сервер и увеличивает скорость програмного кода написанного на PHP в несколько раз. Файлы, которые не могут поместиться в общей памяти кэшируются только на диске.
eAccelerator начал свое существование в декабре 2004 года как форк проекта Turck MMCache. Этот проект был основан Дмитрием Стоговым и большая часть кода Eaccelerator по-прежнему базируется на его работе.
1. Установка PHP eAccelerator.
Чтобы установить эту программу нужно будет кое что установить ( если у Вас еще не установлено):
# apt-get install php5-dev gcc g++ -y
После этого идем на официальный сайт и качаем исходный код данной программы:
# cd /usr/local/src # wget http://sourceforge.net/projects/eaccelerator/files/eaccelerator/eAccelerator%200.9.6.1/eaccelerator-0.9.6.1.zip
Распакуем данный архив и переходи в папку с сорцами:
# unzip eaccelerator-0.9.6.1.zip && cd eaccelerator-0.9.6.1
Сейчас, выполним установку (соберем из исходников):
# sudo phpize
Configuring for: PHP Api Version: 20100412 Zend Module Api No: 20100525 Zend Extension Api No: 220100525
После чего, выполняем:
# ./configure && make install
Если не будет работать, то качаем новый архив с моего сайта, он полностью рабочий и проверялся мной:
# wget http://linux-notes.org/wp-content/uploads/files/modules/eaccelerator-for-PHP.zip # unzip eaccelerator-for-PHP.zip
Переходим в папку и начнем установку:
# phpize # ./configure && make install
Начнется сборка и установка php eAccelerator. Вы можете столкнуться с рядом проблем ( не сможет скопилироваться, по этому нужно читать и фиксить это. Со второго раза у меня получилось все установить и после чего начал использовать все это чудо.
Я уже почти закончил все. Теперь создадим конфигурационные файлы и так же папки для временных файлов:
# mkdir -p /var/cache/eaccelerator
Устанавливаем права на папку:
# chmod -R 777 /var/cache/eaccelerator
Займемся созданием наших конфигов.
– Можно прописать именно в самом php.ini.
– Можно так же создать файл в папке /etc/php5/conf.d, я так и сделаю.
Для это выполняем:
# vim /etc/php5/conf.d/eaccelerator.ini
Вставляем конфиг:
extension="eaccelerator.so" eaccelerator.shm_size="64" eaccelerator.cache_dir="/var/cache/eaccelerator" eaccelerator.enable="1" eaccelerator.optimizer="1" eaccelerator.check_mtime="1" eaccelerator.debug="0" eaccelerator.filter="" eaccelerator.shm_max="0" eaccelerator.shm_ttl="3600" eaccelerator.shm_prune_period="1800" eaccelerator.shm_only="0" eaccelerator.compress="1" eaccelerator.compress_level="9"
Для быстродействия прописываем все это в автозагрузку ОС, чтобы это сделать нужно:
# vim /etc/fstab
[...] # tmpfs /var/cache/eaccelerator tmpfs defaults 0 0 [...]
И смонтируем все это дело, но нужно выполнить это от root:
# mount -a
Конфиг прописан, перезапускаем веб сервер apache:
# /etc/init.d/apache2 restart
Установка завершена, но нужно кое что доделать и проверить работу, этим мы и займемся. Проверяем работает ли у нас eAccelerator :
# php -v
или если используете php-cgi:
# php-cgi -v
Если все нормально, то должно выдать список установленных модулей.
ВНИМАНИЕ! Бывает так, что при попытке запуска eAccelerator выдает ошибку:
eAccelerator: Could not allocate 67108864 bytes, the maximum size the kernel allows is 33554432. Lower the amount of memory request or increase the limit in /proc/sys/kernel/shmmax. PHP Warning: [eAccelerator] Can not create shared memory area in Unknown on line 0 PHP Fatal error: Unable to start eAccelerator module in Unknown on line 0
Фиксится это следующим образом:
# vim /etc/sysctl.conf
[...] # добавляем в самый конец kernel.shmmax=67108864 [...]
И затем выполняем:
# echo 67108864 > /proc/sys/kernel/shmmax
После этого ошибка пропадает!
Чтобы проверить что работает все должным образом, стоит и хватит открыть страницу вашего сайта который есть на вашем сервере\хостинге и запустить:
# du -sh /var/cache/eaccelerator/
В папке должен появится кешированные страницы ( файлы).
Теперь скажу пару слов о phpmyadmin, если вы его используете, то он начнет показывать пустую страницу при открытии. Сейчас мы это быстренько исправим, а нужно в файле конфига нашего web сервера отключить использование eAccelerator в папке с phpmyadmin:
<Directory "/usr/share/phpmyadmin"> php_admin_value eaccelerator.enable 0 </Directory>
Вот и все корректировка, перезапустим апач и проверяем, должно работать!
От себя хочу сказать что существует много решение по мимо PHP eAccelerator, приведу пару из них:
– XCache;
– Zend OPcache;
– PhpExpress;
– Ну и еще пару других решений.