IIS 未显示详细的 PHP 错误 - 而是显示服务器故障 500

IIS 未显示详细的 PHP 错误 - 而是显示服务器故障 500

我习惯使用 Apache 来提供网站服务,但是现在我被迫使用 IIS 服务器。

我的许多 PHP 页面都返回了错误 500,我无法调试,因为 IIS 隐藏了错误消息。我尝试过ini_set('display_errors',1);代码,但无济于事。

一些网站上显示了错误,但不是我想要调试的特定网站,所以我认为这不是全局 PHP 设置,而是与该网站的网站设置有关。

我找不到关于如何启用显示 PHP 错误的明确答案。

我发现此链接但不知道在哪里可以找到“system.webServer->httpErrors“。

如何在 IIS 下启用 PHP 显示错误?

答案1

那么如何记录它们呢?

编辑 php.ini 并设置

error_reporting = E_ALL & ~E_NOTICE
log_errors = On

或者

error_log = syslog记录到 Windows 事件日志,或

error_log = location/of/logfile记录到文件。

答案2

假设你的 php.ini 文件中所有设置都正确

  1. 在 IIS 管理器中选择您的网站
  2. 在右侧,双击“错误页面”图标
  3. 在最右侧的“操作”下,点击“编辑功能设置”链接
  4. 在出现的弹出窗口中,选择“详细错误”单选按钮
  5. 刷新 PHP 页面以查看详细错误

感谢最后一条评论

答案3

如果你在 IIS 中使用 php:

  1. 在 IIS 中选择您的网站
  2. 选择PHP 管理器
  3. 选择配置错误报告
  4. 选择显影机
  5. 申请在最右上角行动控制板。

答案4

我发现使用权一个IIS 托管的页面IE浏览器供测试用。

就我而言,php-error-logs 是干净的 - 从那里得不到任何线索。

当我连接 Firefox/Chrome 时,我得到了一个简单的、非表达性的“500 - 内部服务器错误”: 在此处输入图片描述

...但在使用 InternetExplorer 时会出现更有用的错误消息(“HTTP 错误 500.0 - 内部服务器错误 C:\PHP\php-cgi.exe - FastCGI 进程意外退出”): 在此处输入图片描述

也可以尝试从http://本地主机在服务器本身上。

相关内容