不同的;加载模块php5“U模块”;apache'的说明;虚拟主机

不同的;加载模块php5“U模块”;apache'的说明;虚拟主机,php,apache2,virtualhost,Php,Apache2,Virtualhost,我已将apache2和php5.2作为模块安装在httpd.conf中: LoadModule php5_module "c:/php/php5apache2_2.dll" PHPIniDir "C:/php/" 另外,我在C:/php53文件夹中有php5.3 是否可以为不同的虚拟主机使用不同的模块 目前,我必须更改LoadModule和PHPIniDir指令并重新启动apache。我很确定您不能同时将两个版本的PHP加载到apache中。 但是,可以使用mod_fcgid运行两个不同版本的

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

LoadModule php5_module "c:/php/php5apache2_2.dll"
PHPIniDir "C:/php/"
另外,我在C:/php53文件夹中有php5.3

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


目前,我必须更改LoadModule和PHPIniDir指令并重新启动apache。

我很确定您不能同时将两个版本的PHP加载到apache中。 但是,可以使用mod_fcgid运行两个不同版本的PHP

我现在没有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>

服务器名站点1
服务器管理员admin@site1
DocumentRoot“c:/www/site1”
选项+执行CGI
允许超越所有
##FastCGI材料
AddHandler fcgid script.php
fcgidenv PHPRC“c:/php52”
FcgidWrapper“c:/php52/php cgi.exe”.php
AddType应用程序/x-httpd-php.php
命令允许,拒绝
通融
然后将fcgidInitialeEnv PHPRC设置为php.ini所在的目录,并将FcgidWrapper设置为该php版本的php-cgi.exe文件


您必须对要运行PHP的所有VirtualHost重复此步骤。但是现在,您可以为每个主机自定义PHPRC路径和可执行文件,这样就可以运行不同的版本,并让它们使用不同的配置。

加载您需要的所有模块,将它们分配给不同的处理程序,并将.php设置为由与每个vhost中所需的php版本相关联的处理程序解析。您不能有选择地加载不同的模块,因为一个Apache进程将为您的所有主机提供请求。嘿,Dan,您能给我们一些您建议的配置示例吗?我按照这些说明进行了操作,出现了一个问题:
中不允许使用
fcgidenv
。当我在谷歌上搜索解决方案时,我会找到将
fcgidInitialeEnv
指令移出
的建议。然而,当我这样做时,我仍然可以运行旧版本的PHP。思想?