我习惯使用 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 文件中所有设置都正确
- 在 IIS 管理器中选择您的网站
- 在右侧,双击“错误页面”图标
- 在最右侧的“操作”下,点击“编辑功能设置”链接
- 在出现的弹出窗口中,选择“详细错误”单选按钮
- 刷新 PHP 页面以查看详细错误
感谢最后一条评论这页
答案3
如果你在 IIS 中使用 php:
- 在 IIS 中选择您的网站
- 选择PHP 管理器。
- 选择配置错误报告。
- 选择显影机。
- 打申请在最右上角行动控制板。
答案4
我发现使用权一个IIS 托管的页面和IE浏览器供测试用。
就我而言,php-error-logs 是干净的 - 从那里得不到任何线索。
当我连接 Firefox/Chrome 时,我得到了一个简单的、非表达性的“500 - 内部服务器错误”:
...但在使用 InternetExplorer 时会出现更有用的错误消息(“HTTP 错误 500.0 - 内部服务器错误 C:\PHP\php-cgi.exe - FastCGI 进程意外退出”):
也可以尝试从http://本地主机在服务器本身上。