服务器
我有一台开发用的服务器,用来托管我的当前项目。以下是一些统计信息:
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
问题
我正在使用mod_php5
运行PHP 5.3.3,效果很好。但是我需要为服务器上的一个虚拟主机(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)
相关文件
mod_php
。你是不是要建议我设置一个默认的CGI处理程序并永久关闭mod_php
? - mattalxndrsu_php
的东西,它 1) 非常灵活,因为您可以安装无数的处理程序,2) 更加安全。 - Linus Kleen