PHP 文档 IIS 8 和 PHP 7.0.2 上的 HTTP 500 错误


HTTP 500 Error on php document IIS 8 and PHP 7.0.2

我正在尝试将我的 LAMP 应用程序迁移到 Windows/IIS。我有一台 Windows 2012 R2 服务器。我正在按照 https://technet.microsoft.com/en-us/library/hh994592.aspx 中的说明进行操作(略有修改:我使用add-windowsfeature Web-Server -includeAllSubFeature来安装IIS + CGI)。我安装了 vc++ 2015 redist(x86 和 x64)。PHP 7.0.2 安装在 d:''php 上。配置了 PHP 的 IIS 模块处理程序:

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
  • 扩展=php_卷曲.dll
  • log_errors = 开
  • error_log = 系统日志
上述配置适用于 Windows 7 桌面和未加入公司域的 2012 R2 服务器,

但在域中的两台 2012 R2 服务器上,我在尝试启动 http://localhost/test.php 时收到 500 内部服务器错误。

C:''inetpub''wwwroot''test.php 包含:

<?php phpinfo(); ?>

我在 Windows 事件日志中看不到任何错误信息。

在cmd窗口中运行"php c:''inetpub''wwwroot''test.php"给了我预期的phpinfo。

我已经检查了d:''php文件夹和c:''inetpub''wwwroot文件夹的NTFS权限。它们太多了,无法列出,但 SYSTEM 可以完全控制这两个文件夹,并且 WWWPublishing 服务作为本地系统运行。

关于寻找什么以找出为什么这不起作用的任何想法?

事实证明,IIS_IUSRS组需要对 d:''php 文件夹进行完全控制的 NTFS 访问。