【问题标题】:HTTP 500 Error on php document IIS 8 and PHP 7.0.2php 文档 IIS 8 和 PHP 7.0.2 上的 HTTP 500 错误
【发布时间】:2016-05-06 13:46:24
【问题描述】:

我正在尝试将我的 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 Internal Server 错误。

c:\inetpub\wwwroot\test.php 包含:

<?php phpinfo(); ?>

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

在 cmd 窗口中运行“php c:\inetpub\wwwroot\test.php”会给我预期的 phpinfo。

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

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

【问题讨论】:

  • 您愿意向我们展示引发错误的代码吗?
  • 这可能是由于您的代码中的错误,所以请在您的答案中包含它
  • 是我当前的代码。我要移植的应用程序是第三方应用程序,而且非常大。它目前在 LAMP 服务器上运行良好。
  • 你检查过 IIS 日志吗?
  • 我只有默认日志。它显示访问尝试和 500 状态。 eg: #Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) cs(Referer) sc-status sc-substatus sc- win32-状态耗时 2016-01-28 23:04:56 127.0.0.1 GET /test.php - 80 - 127.0.0.1 Mozilla/5.0+(Windows+NT+6.3;+WOW64;+Trident/7.0;+ rv:11.0)+like+Gecko - 500 0 1413 0

标签: php windows-server-2012 iis-8


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-12
    • 1970-01-01
    • 2011-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多