0

У меня есть две версии PHP на Windows Server - v5 и v7. Проблема заключается в том, что PHP 7 пытается использовать php.ini РНР 5:Как заставить PHP взять правильный php.ini?

$ php -v 
PHP 7.0.2 (cli) (built: Jan 6 2016 12:59:59) (NTS) 
Copyright (c) 1997-2015 The PHP Group 
Zend Engine v3.0.0, Copyright (c) 1998-2015 Zend Technologies 
$ php --ini 
Configuration File (php.ini) Path: C:\Windows 
Loaded Configuration File:   D:\path\to\php5\php.ini 
Scan for additional .ini files in: (none) 
Additional .ini files parsed:  (none) 

Как установить правильный php.ini для PHP 7?

+0

Выполняется ли 'echo% path%' show 'D: \ path \ to \ php5'? – AbraCadaver

+0

@AbraCadaver Это показывает как путь PHP5, так и путь для PHP7: '... D: \ path \ to \ php7 \ ext \; D: \ path \ to \ php5 \ ext \; D: \ path \ к \ php7 \; D: \ путь \ к \ php5 \; D: \ путь \ к \ php5; ... '. – automatix

ответ

1

Следующая страница руководства обсуждает, как PHP находит конфигурацию-файл в Windows:

http://php.net/manual/en/configuration.file.php

SAPI модуль конкретное место (PHPIniDir директиву в Apache 2, -с командной строки варианты в CGI и CLI, php_ini параметр NSAPI, переменная PHP_INI_PATH среды в THTTPD)

PHPRC Окружающая среда переменная. До PHP 5.2.0 это было проверено после раздела реестра , упомянутого ниже. Начиная с PHP 5.2.0, расположение файла php.ini может быть установлено в для разных версий PHP.

следующие ключи реестра рассматриваются в следующем порядке: [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y.z], [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y] и [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x], где x, y и z означают PHP крупных, мелких и высвобождают версии. Если есть значение для IniFilePath в любом из этих ключей, первый найденный будет использоваться как местоположение php.ini (только для Windows).

[HKEY_LOCAL_MACHINE\SOFTWARE\PHP], значение IniFilePath (только для Windows).

Текущий рабочий каталог (кроме CLI).

Каталог веб-сервера (для модулей SAPI) или каталог PHP (в противном случае в Windows).

каталог ОС Windows (C:\windows или C:\winnt) (для Windows) или --with-config-file-path опции во время компиляции.

+0

Спасибо за подсказку! Я проверил свой реестр, но там нет записей для PHP. (Только «Менеджер PHP», но это что-то для IIS.) – automatix

+0

Вчера я пробовал много вещей, чтобы заставить его работать. Я установил переменную среды 'PHPRC' в' D: \ path \ to \ php7'. Интересно, почему 'v5' все еще работает. Но в любом случае обе версии, похоже, сейчас в порядке. – automatix

+0

Ну, если «кажется, сейчас все в порядке», почему бы не ответить на свой вопрос? Точно, что, наконец, сделал трюк? –