在 apache 2.2 中的虚拟主机上运行不同的 PHP 版本


Run different PHP versions on virtual hosts in apache 2.2

如何将 Apache 2.2 服务器配置为在所有虚拟主机中安装 PHP 5.3,除了运行 PHP 4.4 的一个虚拟主机?我有所有的php和.dll文件。

解释解决方案的原始文章不再可用。替换为 Wayback Machine 条目(2020 年 12 月)(https://web.archive.org/web/20190922142848/http://gggeek.altervista.org/2007/07/21/running-multiple-php-versions-on-a-single-apache-install/)

示例 VHost 配置:

# Port-based virtual hosting: every php install uses a vhost on a different port
Listen 8447
Listen 8423
### BASE virtualhost
### set up the main php version we're using
<VirtualHost *:80>
    LoadModule php5_module "E:/php5/php5apache2_2.dll"
    PHPIniDir "E:/php5"
    php_value extension_dir "E:/php5/ext/"
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
</VirtualHost>
<VirtualHost *:8447>
    # it would be handy to use php_value directives, but CGI versions of php     will not grok them,
    # so we rely on different php.ini
    SetEnv PHPRC "E:/php4/"
    ScriptAlias /php447/ "E:/php4/"
    Action application/x-httpd-php447 "/php447/php.exe"
    AddType application/x-httpd-php447 .php .inc
    # apache 2.2 denies access to the php cgi executable, unless it is explicitly granted
    <Directory "E:/php4/">
      <Files "php.exe">
        Allow from all
      </Files>
    </Directory>
</VirtualHost>
<VirtualHost *:8423>
    SetEnv PHPRC "E:/php423/"
    ScriptAlias /php423/ "E:/php423/"
    Action application/x-httpd-php423 "/php423/php.exe"
    AddType application/x-httpd-php423 .php .inc
    <Directory "E:/php423/">
      <Files "php.exe">
        Allow from all
      </Files>
    </Directory>
</VirtualHost>