• Установка eAccelerator

      2 comments

    eAccelerator – акселератор PHP, который позволяет ускорить выполнения Ваших PHP-скриптов.
    В этом посте я расскажу, как установить eAccelerator на Ubuntu-сервере

    Чтобы установить eAccelerator на Ваш ubuntu-сервер необходимо зайти на него по SSH.

    1. Устанавливаем необходимые для сборки пакеты:

    sudo apt-get install build-essential php5-dev bzip2

    2. На момент написания этого поста уже есть eaccelerator-0.9.6-rc1, но по опыту ее использования могу сказать, что она достаточно нестабильна и вешала у меня сервер за 1-3 часа. Скачиваем дистрибутив, распаковываем и собираем eAccelerator 0.9.5.3.

    sudo wget http://bart.eaccelerator.net/source/0.9.5.3/eaccelerator-0.9.5.3.tar.bz2
    sudo tar -jxf eaccelerator-0.9.5.3.tar.bz2
    sudo cd eaccelerator-0.9.5.3
    sudo phpize
    sudo ./configure
    sudo make install clean

    3. Необходимо прописать собранный модуль в кофигурационном файле php (/etc/php5/apache2/php.ini).
    В конце файла добавляем:

    ; PHP extension eAccelerator
    ; Подключаем собственно само расширение
    extension="eaccelerator.so"
    
    ; Следущая опция собственно включает сам eAccelerator
    eaccelerator.enable="1"
    
    ; Максимальный размер кеша в оперативке (в мегабайтах).
    ; если оперативки на сервере много ставьте 64 (больше у
    ; меня поставить не получилось), если мало - подберите
    ; значение под себя.
    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="3600"
    
    ; Включить или отключить кеширование скомпиленных скриптов
    ; _только_ на диск. Этот параметр не влияет на данные сессий
    ; и кеширование контента. По-умолчанию, значение 0, что означает
    ; что данные будут кешироваться и в памяти и на диске.
    eaccelerator.shm_only="0"
    
    ; Включить или отключить сжатие закешированного контента.
    ; По-умолчанию, "1" - сжимать. Если оперативки много и места
    ; на диске не жалко - я рекомендую выключить.
    eaccelerator.compress="0"
    
    ; Уровень сжатия. По-умолчанию, "9" - максимум.
    eaccelerator.compress_level="9"

    Это настройки, рекомендуемые мной лично. Если у вас они вызвали какие-либо проблемы – можете заменить их дефолтными настройками:

    extension="eaccelerator.so"
    eaccelerator.shm_size="16"
    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="0"
    eaccelerator.shm_prune_period="0"
    eaccelerator.shm_only="0"
    eaccelerator.compress="1"
    eaccelerator.compress_level="9"

    4.Создаем кеш-каталог для eaccelerator:

    sudo mkdir -p /var/cache/eaccelerator
    sudo chmod 0777 /var/cache/eaccelerator

    5. Перезапускаем веб-сервер apache2:

    sudo /etc/init.d/apache2 restart
    • Спасибо аз статью.
      По поводу: eaccelerator.shm_size=”64″
      У меня апач фэйлится при рестарте.

      Пишет:
      [Sun Apr 15 01:20:17 2012] [notice] Digest: done
      eAccelerator: Could not allocate 67108864 bytes, the maximum size the kernel allows is 33554432 bytes. 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

    Write a comment