У меня 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?
Также попробовал это через реестр, но это не помогло:
Вам необходимо установить переменные среды в конфигурации 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/ .
Решение Jan Reilink кажется правильным, но, к сожалению, я не смог узнать, как правильно применить его (см. Этот и другие мои комментарии ниже ответа Яна).
Наконец, я решил его решить с помощью графического интерфейса IIS:
И затем FastCGI Settings -> EnvironmentVariables -> PHPRC
:
См. Также « Настройка IIS для обработки запросов PHP » в главе «Использование FastCGI для размещения приложений PHP на IIS 7» документации IIS.