У меня есть IIS 7.0 и две версии PHP v5
а также v7
на моем Microsoft Windows Server 2008 Standard 6.0 SP2. Проблема в том, что PHP7 или IIS пытается использовать php.ini из PHP5 для IIS «веб-сайтов».
Так что в командной строке все нормально
X:\>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
X:\>php --ini
Configuration File (php.ini) Path: C:\Windows
Loaded Configuration File: D:\Data\Programme\php7\php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed: (none)
Но в диспетчере IIS и в phpinfo()
вывод не:
Я думаю, это PHP (cgi-fcgi
SAPI) выпуск, не проблема IIS (но не уверен).
Как правильно установить php.ini
для PHP CGI / FastCGI SAPI на Windows Server 2008?
Также попробовал это через Реестр, но это не помогло:
решение из Ян Рейлинк тоже кажется правильным, но, к сожалению, я так и не смог выяснить, как правильно его применить (см. этот и другие мои комментарии ниже ответа Яна).
Наконец-то я решил это через графический интерфейс IIS:
А потом FastCGI Settings -> EnvironmentVariables -> PHPRC
:
Смотрите также «Настройте IIS для обработки запросов PHP«в главе» Использование FastCGI для размещения приложений PHP на IIS 7 «документации IIS.
Вам необходимо установить переменные среды в конфигурации FastCgi для размещения нескольких версий PHP в IIS. Тот, который вы хотите, это PHPRC:
AppCmd set config -section:system.webServer/fastCgi
/+"[fullPath='c:\php5\php-cgi.exe', arguments='-c
c:\php5\php.ini'].environmentVariables.
[name='PHPRC',value='c:\php5\php.ini']" /commit:apphost
(Обратите внимание -c
аргумент тоже)
и сделайте то же самое для PHP 7, и измените путь. У меня есть это и многое другое, объяснил в моем блоге https://www.saotn.org/php-wincache-on-iis/.