我在httpd.conf中安装了apache2和php5.2作为模块:
LoadModule php5_module "c:/php/php5apache2_2.dll"
PHPIniDir "C:/php/"
我在C:/ php53文件夹中也有php5.3。
是否可以为不同的虚拟主机使用不同的模块?
现在我必须更改LoadModule和PHPIniDir指令并重启apache。
答案 0 :(得分:1)
我很确定你不能同时将两个版本的PHP加载到apache中。 但是,可以使用mod_fcgid来运行两个不同版本的PHP。
我现在没有Windows机器,所以我无法验证这是否有效。 无论如何,我从这里http://fuzzytolerance.info/blog/apache-mod_fcgid-and-php-on-windows/
找到了一些如何在Windows上设置FastCGI和PHP的说明如果您想运行不同的版本,则有一个例外。 您不应该在全局部分添加FCGI内容,而是添加到每个VirtualHost部分
看起来应该是这样的:
<VirtualHost *:80>
ServerName site1
ServerAdmin admin@site1
DocumentRoot "c:/www/site1"
<Directory "c:/www/site1/web">
Options +ExecCGI
AllowOverride All
## FastCGI stuff
AddHandler fcgid-script .php
FcgidInitialEnv PHPRC "c:/php52"
FcgidWrapper "c:/php52/php-cgi.exe" .php
AddType application/x-httpd-php .php
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
然后将phpgidInitialEnv PHPRC设置为php.ini所在的目录,将FcgidWrapper设置为该PHP版本的php-cgi.exe文件。
您必须为要运行PHP的所有VirtualHost重复此步骤。但是现在您可以为每个主机自定义PHPRC路径和可执行文件,以便可以运行不同的版本并让它们使用不同的配置。