Назад | Перейти на главную страницу

Работаете с другой версией 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"

Здесь есть пара вещей.

Одновременный запуск двух версий PHP под одним и тем же процессом Apache обычно выполняется через CGI. Но ты, кажется, пытаясь чтобы загрузить PHP как модуль Apache (почему эта строка LoadModule находится в VirtualHost)?

php_valueи связанные директивы работают только при запуске PHP как модуля Apache (не под CGI). Поэтому, если вы вместо этого запускаете PHP под CGI, будут работать только значения php.ini.