Как я обещал в недавней публикации, рассмотрю процесс установки eAccelerator на наш рабочий веб сервер под управлением Apache с поддержкой PHP5. eAccelerator это свободно-распространяемый PHP ускоритель, оптимайзер и средство для кеширования динамического контента. Он увеличивает производительность PHP скриптов за счет их кеширования в скомпилированном состоянии, тем самым предотвращая их постоянную перекомпиляцию. В результате происходит увеличение скорости их выполнения. eAccelerator обычно уменьшает нагрузку на сервер и увеличивает скорость исполнения PHP кода на величину от 1 до 10 раз.
Все скомпилированные PHP файлы eAccelerator удерживает в разделяемой памяти (shared memory) и выполняет программный код непосредственно из этой памяти. Блокировки возникают лишь на небольшой промежуток времени, пока eAccelerator ищет перекомпилированный PHP скрипт в своем кеше. Таким образом один скрипт может выполняться одновременно несколькими движками. Файлы, которые не удается разместить в разделяемой памяти кешируются только на диске. Во FreeBSD eAccelerator можно установить из портов. Ставим:
root# whereis eaccelerator eaccelerator: /usr/ports/www/eaccelerator root# cd /usr/ports/www/eaccelerator root# make install clean ...
По окончании компиляции и установки нам будет выдано такое сообщение:
************************************************************* You have installed the eaccelerator package. Edit /usr/local/etc/php.ini and add: zend_extension="/usr/local/lib/php/20060613/eaccelerator.so" Then create the cache directory: mkdir /tmp/eaccelerator chown www /tmp/eaccelerator chmod 0700 /tmp/eaccelerator *************************************************************
Программа нам подсказывает наши дальнейшие шаги.
Что ж, создадим для начала все необходимые каталоги для работы eAccelerator'а, но только не в каталоге /tmp. У меня на /tmp разделе места маловато. Да и очищается он после перезапуска. Будет кеш на /var. Кроме этого, eaccelerator подключим не как расширение Zend'а, а как расширение PHP.
root# mkdir /var/eaccelerator root# chown www:www /var/eaccelerator root# chmod 0700 /var/eaccelerator
Теперь открываем файл конфигурации PHP /usr/local/etc/php.ini и прописываем в нем такие параметры:
; PHP extension eAccelerator ; Подключаем собственно само расширение extension="eaccelerator.so" ; Следущая опция собственно включает сам eAccelerator eaccelerator.enable="1" ; Максимальный размер кеша в мегабайтах eaccelerator.shm_size="64" ; Корневой каталог для хранения кеша eaccelerator.cache_dir="/var/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"
В принципе, как видим, совершенно ничего сложного нет. Тем не менее, эта маленькая и вкусная добавочка значительно облегчит жизнь Вашему Apache/PHP.










Четверг, 10 марта, 2011 в 02:15:47
Спасибо за подробный пост. Сайты занимали 25-30мб, а теперь 10-11мб. Целый день искал подходящую информацию для установки eAccelerator.
Понедельник, 11 октября, 2010 в 10:35:16
icq 331763710 любые ответы на любые вопросы
не баньте комент плиз
Понедельник, 11 октября, 2010 в 10:36:56
Почему?
Понедельник, 11 октября, 2010 в 10:39:26
ну подскажу ребятам
Понедельник, 11 октября, 2010 в 10:41:27
ты ж денег просишь за это, а коммерческие объявления в этом блоге расцениваются как спам
Понедельник, 11 октября, 2010 в 10:42:52
я тока номер указал и все
Понедельник, 11 октября, 2010 в 10:45:31
но и «вознаграждение» тоже упомянул
Понедельник, 11 октября, 2010 в 10:46:17
заметь того комента уже нет
Понедельник, 11 октября, 2010 в 10:48:35
Да, потому что я его удалил.
Хватит флудить, ибо и эти удалю.
Суббота, 20 марта, 2010 в 03:38:49
Присоединяюсь к вопросу FOX’а. Подскажите пожалуйста новичку, как установить eaccelerator.
Среда, 27 января, 2010 в 17:17:19
я за тобой слежу =))
Воскресенье, 24 января, 2010 в 16:50:52
Прошу сильно не судить, уже как 2 год сам учусь php вебу…
но так и не понял как устанавливать ацелератор… уже как месяц ломаю голову….
куда писать это:
root# whereis eaccelerator
eaccelerator: /usr/ports/www/eaccelerator
root# cd /usr/ports/www/eaccelerator
root# make install clean …
Люди подскажите
Пятница, 8 мая, 2009 в 10:38:00
Было было такое.
17-го апреля проходила на ОпенНет новость: «Доклад Игоря Сысоева о настройке FreeBSD 7 для нагруженного веб-сервера«.
P.S.: Ссылка была в этом комменте. Пряталась под словом «тут«.
Пятница, 8 мая, 2009 в 10:25:50
Спасибо за ссылку! Сысоев еще интересные фичи рассказывал на хайлоаде про nginx и особенности FreeBSD (как настроить по максимуму фрю на высоконагруженном сервере), на рутубе можно найти.