Windows Server 2012 — HTTP 500 Ошибка на PHP-документе IIS 8 и PHP 7.0.2

Я пытаюсь перенести приложение LAMP на Windows / IIS.
У меня есть сервер Windows 2012 R2.
Я следую инструкциям на https://technet.microsoft.com/en-us/library/hh994592.aspx (слегка изменено: я использовал веб-сервер add-windowsfeature -includeAllSubFeature для установки IIS + CGI).
У меня установлен редист vc ++ 2015 (как x86, так и x64).
PHP 7.0.2 установлен в d: \ php.
Обработчик модуля IIS для php настроен:

name            : PHP_via_FastCGI
path            : *.php
verb            : *
modules         : FastCgiModule
scriptProcessor : D:\php\php-cgi.exe
resourceType    : Either
requireAccess   : Script

d: \ php находится в переменной окружения PATH.
Мои настройки php.ini — это настройки php.ini-development со следующими изменениями:

  • extension_dir = «ext»
  • cgi.force_redirect = 0
  • fastcgi.impersonate = 1
  • fastcgi.logging = 0
  • extension = php_ curl.dll
  • log_errors = On
  • error_log = syslog

Приведенная выше конфигурация работает на рабочем столе Windows 7 и на сервере 2012 R2, НЕ подключенном к корпоративному домену, но на двух серверах 2012 R2 в домене при попытке запуска возникает ошибка 500 Internal Server. Http: //localhost/test.php.

c: \ inetpub \ wwwroot \ test.php содержит:

<?php phpinfo(); ?>

Я не вижу информации об ошибках в журнале событий Windows.

Запуск «php c: \ inetpub \ wwwroot \ test.php» в окне cmd дает мне ожидаемый phpinfo.

Я проверил разрешения NTFS для папки d: \ php и папки c: \ inetpub \ wwwroot. Их слишком много, чтобы перечислить, но SYSTEM имеет полный контроль над обеими папками, а служба WWWPublishing работает как локальная система.

Любые идеи о том, что искать, чтобы узнать, почему это не работает?

2

Решение

Как оказалось, группе IIS_IUSRS требовался полный контроль доступа NTFS к папке d: \ php.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]