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

标签 php windows-server-2012 iis-8

我正在尝试将我的 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
  • extension=php_curl.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 访问权限。

关于php - PHP 文档 IIS 8 和 PHP 7.0.2 上的 HTTP 500 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35074113/

相关文章:

php - 拉维尔 |获取类别中的项目计数

php - 如何 ORDER BY 哪个参数在 URL 或 MySQL 查询中排在第一位?

c# - 找不到来源,但无法搜索到部分或所有事件日志。无法访问的日志 : Security

.net - 将 .NET 项目从非托管项目切换到托管 ODP.NET 程序集时出现问题

wif - 替换独立的 FedUtil 以更新 system.IdentityModel

php - 使用 base64 预加载图像

php - Mysql 如果有问题

java - LDAP 过滤器查询如何工作,特别是在 Java LDAP/spring LDAP 中?

powershell - Powershell:永久修改路径 “Requested registry access is not allowed.”

ssl - 无法创建 SSL/TLS 安全通道仅发生在 Windows Server 2012 中