Мне нужны PHP 5.4.7 и 5.3.17, работающие в Windows 7 x64 с Apache 2.2.23. Это моя конфигурация виртуального хоста:
<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>
В PHPIniDir
и LoadModule
директивы работают нормально и используют phpinfo()
внутри моего скрипта печатается правильная версия PHP.
Но мне нужно загрузить расширения, и здесь ничего не получается. php_value extension_dir
должно быть C:/WAMP/PHP54/ext
но это (по умолчанию) C:/php
.
Что мне здесь не хватает?
РЕДАКТИРОВАТЬ: Конечно, я могу установить это значение прямо в C:/WAMP/PHP54/php.ini
, но я предпочитаю передавать его с использованием конфигурации vhost:
; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; extension_dir = "./"
; On windows:
extension_dir = "C:/WAMP/PHP54/ext"
Здесь есть пара вещей.
Одновременный запуск двух версий PHP под одним и тем же процессом Apache обычно выполняется через CGI. Но ты, кажется, пытаясь чтобы загрузить PHP как модуль Apache (почему эта строка LoadModule находится в VirtualHost)?
php_value
и связанные директивы работают только при запуске PHP как модуля Apache (не под CGI). Поэтому, если вы вместо этого запускаете PHP под CGI, будут работать только значения php.ini.