How can I configure Apache 2.2 server to have PHP 5.3 in all virtual hosts, except one virtual host in which to run PHP 4.4? I have all the php and .dll files.
Original article explaining the solution no longer available. Replaced by Wayback Machine entry (Dec 2020) (https://web.archive.org/web/20190922142848/http://gggeek.altervista.org/2007/07/21/running-multiple-php-versions-on-a-single-apache-install/)
Example VHost configuration:
# 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>