IIS6 + PHP + FastCGI 500 错误 - 从哪里开始查找?

IIS6 + PHP + FastCGI 500 错误 - 从哪里开始查找?

我已经使用 FastCGI 设置了 IIS6 来使用 php-cgi.exe。

我有一些外部方提供的 php 网站,我正在尝试在测试环境中运行它们。

其中一个网站直接向我显示 FastCGI 错误页面。这种情况并非在每个页面上都发生,只是似乎在某些页面上发生,而其他页面则显示正确。

  • 问题:是否有某种方法可以启用某处日志记录,以便我可以获得有关此问题的更多信息?

我已经看过了

  • 事件日志
  • IIS 网站日志(c:\windows\system32\Logfiles)
  • PHP 日志

但没有结果,除了 IIS 网站日志提到返回 500 页。

  • 问题:还有其他方法可以调试/检查哪里可能出错吗?

该页面如下所示:

FastCGI 错误

FastCGI 处理程序无法处理该请求。错误详细信息:

FastCGI 进程意外退出错误号:-1073741571 (0xc00000fd)。错误描述:未知错误 HTTP 错误 500 - 服务器错误。Internet 信息服务 (IIS)

回答

显然,错误消息意味着 Stack Overflow,因此该消息是调试。我不是 PHP 开发人员,所以这是一个相当痛苦的过程。然而,我们将问题缩小到 Ajax 请求,但我猜任何类型的请求都可能发生这种情况:

请求本身导致服务器返回 500。使用 Fiddler 尝试请求后,我们发现 GET 请求中的 Cookie 条目包含 PHPSESSID 项。忽略此项后,请求确实有效。

因此,这个问题的答案(在我们的例子中)是从请求中省略 PHPSESSID。现在剩下的就是弄清楚如何做到这一点 :)

答案1

错误代码-1073741571 (0xc00000fd)表示 Stack Overflow。您需要调试代码。

答案2

尝试搜索http://forums.iis.net。他们好像建议你尝试升级 PHP,或者应用程序存在问题导致 PHP 或 fastCGI 进程崩溃。

祝你好运。

答案3

对于那些正在寻找答案的人,我花了大约两个小时在“500 内部服务器错误”+ PHP + 快速 CGI 中,错误是 web.config 文件在我的 PHP 应用程序文件夹中(IIS 已自动创建了一个)。

通过删除该文件,应用程序已成功运行。

相关内容