针对apache虚拟主机的不同“LoadModule php5_module”指令

时间:2011-03-03 07:26:23

标签: php apache2 virtualhost

我在httpd.conf中安装了apache2和php5.2作为模块:

LoadModule php5_module "c:/php/php5apache2_2.dll"
PHPIniDir "C:/php/"

我在C:/ php53文件夹中也有php5.3。

是否可以为不同的虚拟主机使用不同的模块?

现在我必须更改LoadModule和PHPIniDir指令并重启apache。

1 个答案:

答案 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路径和可执行文件,以便可以运行不同的版本并让它们使用不同的配置。