好吧,我将概述如何在我的专用机器上设置和运行一切。我一切正常,但 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
我已经从 Debian repo 安装了最新版本的 PHP 5.3。我还有一个编译版的 PHP 5.2.17,位于/opt/php5.2/
。要编译 PHP 5.2 并让 fastcgi 交付到相应的 PHP 应用程序我遵循了这些说明. 这可按需要工作。
加速器
eAccelerator 正在 Debian repo 上运行 PHP 5.3,但我无法让它在 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(); 的输出都符合预期,但 PHP 5.2 网站上的 eAccelerator 未启用。然而,PHP 5.3 网站上的 eAccelerator 已完美启用。
虚拟主机配置
每当我需要一个网站加载 PHP 5.2 时,我只需加载前面提到的 php-version-5.2.conf 文件,否则该网站默认为 PHP 5.3。
答案1
你记得取消注释扩展加载吗?如图所示,扩展未加载在/opt/php5.2/conf.d/eaccelerator.ini中