同时使用不同的PHP版本,php_value extension_dir不工作?

我需要PHP 5.4.7和5.3.17在Windows 7 x64和Apache 2.2.23上运行。 这是我的虚拟主机configuration:

<VirtualHost *:80> DocumentRoot "C:/WAMP/Apache/htdocs/php54" ServerName php54.local PHPIniDir "C:/WAMP/PHP54" LoadModule php5_module "C:/WAMP/PHP54/php5apache2_2.dll" php_value extension_dir "C:/WAMP/PHP54/ext" <Directory "C:/WAMP/Apache/htdocs/php54"> Order allow,deny Allow from all </Directory> </VirtualHost> 

PHPIniDirLoadModule指令工作正常,并在我的脚本中使用phpinfo()打印正确的PHP版本。

但我需要加载扩展,这是失败的地方。 php_value extension_dir应该是C:/WAMP/PHP54/ext但它是(默认的) C:/php

我在这里错过了什么?

编辑 :当然,我可以直接在C:/WAMP/PHP54/php.ini设置这个值,但我更喜欢使用虚拟主机configuration传递它:

 ; Directory in which the loadable extensions (modules) reside. ; http://php.net/extension-dir ; extension_dir = "./" ; On windows: extension_dir = "C:/WAMP/PHP54/ext" 

有几件事情在这里。

在同一个Apache进程下同时运行两个版本的PHP通常是通过CGI完成的。 但是你似乎试图加载PHP作为Apache模块(为什么LoadModule行在VirtualHost中)?

php_value和相关的指令只在PHP作为Apache模块运行(不在CGI下)时才起作用。 所以,如果你是在CGI下运行PHP,只有php.ini值才能工作。