Назад | Перейти на главную страницу

eAccelerator с двумя версиями PHP через FastCGI

Хорошо, я опишу, как все настраивается и работает для меня на моем выделенном боксе. У меня все работает, но eAccelerator работает только с одним из моих приложений PHP.

Apache2

У меня установлен Apache2 и я работаю с виртуальными хостами. У Apache есть файл по адресу /etc/apache2/php-version-5.2.conf который включается в каждый виртуальный хост, когда ему нужно запустить PHP 5.2:

#include for sites that still need to run at php 5.2.x

SetEnv PHP_INI_SCAN_DIR /opt/php5.2/conf.d/
ScriptAlias /php5-cgi /usr/lib/cgi-bin/php5-cgi
Action application/x-httpd-php5 /php5-cgi

<FilesMatch "\.php">
SetHandler application/x-httpd-php5
</FilesMatch>

AddHandler application/x-httpd-php5 .php .php5 .php4 .php3 .phtml

PHP

Я установил последнюю версию PHP 5.3 из репозитория Debian. У меня также есть скомпилированная версия PHP 5.2.17, сидящая на /opt/php5.2/. Для компиляции PHP 5.2 и доставки fastcgi в соответствующее приложение PHP Я выполнил эти инструкции. Это работает по мере необходимости.

eAccelerator

eAccelerator работает над PHP 5.3 из репозитория Debian, но я не могу загрузить его в скомпилированной версии PHP 5.2.

Я скомпилировал из исходного кода обе установки PHP из эти инструкции.

В /etc/php5/apache2/conf.d/eaccelerator.ini У меня есть:

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"

В /opt/php5.2/conf.d/eaccelerator.ini У меня есть:

;extension="/opt/php5.2/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so"
;zend_extension="/opt/php5.2/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so"
;zend_extension_ts="/opt/php5.2/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so"
;extension="eaccelerator.so"
eaccelerator.shm_size="16"
eaccelerator.cache_dir="/var/cache/eaccelerator-php-5.2"
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"

phpinfo ();

Вывод phpinfo (); на каждом сайте, как и ожидалось, за исключением того, что eAccelerator не включен на сайтах PHP 5.2. Однако он отлично включен на сайтах PHP 5.3.

Конфигурация виртуального хоста

Каждый раз, когда мне нужен сайт для загрузки PHP 5.2, я просто загружаю вышеупомянутый файл php-version-5.2.conf, иначе сайт по умолчанию использует PHP 5.3.

Вы не забыли раскомментировать загрузку расширения? Как показано, расширение не загружается в /opt/php5.2/conf.d/eaccelerator.ini