服务器
我有一个开发服务器,用于托管我当前的项目。以下是一些统计数据:
root@myserver:/usr/bin $ cat /etc/*-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=10.10
DISTRIB_CODENAME=maverick
DISTRIB_DESCRIPTION="Ubuntu 10.10"
root@myserver:/usr/bin $ apache2 -v
Server version: Apache/2.2.16 (Ubuntu)
Server built: Nov 18 2010 21:17:43
root@myserver:/usr/bin $ php --version
PHP 5.3.3-1ubuntu9.1 with Suhosin-Patch (cli) (built: Oct 15 2010 14:00:18)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
root@myserver:/usr/bin $ uname -r
2.6.35-22-server
问题
我正在使用 PHP 5.3.3 运行mod_php5
它,它运行良好。但是我只需要在服务器上为一个 VH 运行 PHP 5.2.11,所以我使用phpfarm来编译 PHP 5.2.11。我想将 Apache 配置为对服务器上除此 VH 之外的所有内容使用 mod_php5。我将通过 FastCGI 为这个 VH 运行 PHP 5.2.11。
我的测试
作为测试,我使用的是 Apache 的默认站点/var/www
。我设置了以下目录文件来向我报告 PHP 版本:
- /var/www/phpinfo.php
- /var/www/php-5.2.11/phpinfo.php
我的目标是向/var/www/phpinfo.php
我展示版本 5.3.3 (mod_php5) 并/var/www/php-5.2.11/phpinfo.php
展示给我 5.2.11 (CGI)。这还不行。
我插入了以下代码/etc/apache2/httpd.conf
:
FastCgiServer /var/www/cgi-bin/php-cgi-5.2.11
ScriptAlias /cgi-bin-php/ /var/www/cgi-bin/
我将以下代码插入到默认站点的 VH 定义中:
<Directory /var/www/php-5.2.11/>
AddHandler php-cgi .php
Action php-cgi /cgi-bin-php/php-cgi-5.2.11
</Directory>
结果
启用mod_php5
:
- /var/www/phpinfo.php ---> 5.3.3 (
mod_php5
) - /var/www/php-5.2.11/phpinfo.php ---> 5.3.3 (
mod_php5
)
禁用mod_php5
:
- /var/www/phpinfo.php ---> 没有处理程序;Firefox 尝试下载 PHP 文件
- /var/www/php-5.2.11/phpinfo.php ---> 5.2.11 (CGI)
涉及的文件