Работаете с разными версиями 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.

Другие вопросы по тегам