Работаете с разными версиями PHP одновременно, php_value extension_dir не работает?
Мне нужно, чтобы 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"
1 ответ
Есть несколько вещей, которые здесь.
Запуск двух версий PHP одновременно под одним и тем же процессом Apache обычно выполняется через CGI. Но вы, похоже, пытаетесь загрузить PHP как модуль Apache (почему эта строка LoadModule находится в VirtualHost)?
php_valueи соответствующие директивы работают только тогда, когда PHP запускается как модуль Apache (не в CGI). Так что если вы вместо этого запускаете PHP под CGI, будут работать только значения php.ini.