如何在IIS7上显示和记录PHP错误?


29

我们正在IIS 7服务器上运行PHP 5.2.5,并且遇到使PHP错误可见的问题。此刻,每当我们遇到PHP错误时,服务器都会发回500错误并显示消息“该页面无法因为发生内部服务器错误而显示。”

对于生产网站来说,这可能是一个不错的设置,但是在开发服务器上却很烦人... ;-)

我曾尝试配置php.ini以在屏幕上显示错误以及将错误记录到特定文件夹中,但是服务器似乎之前捕获了所有错误并通过PHP进行阻止和处理。

有人知道我们需要做什么才能使IIS在屏幕上显示PHP错误吗?任何有关该主题的链接,技巧或教程都将不胜感激!


首先,确保你有这些:log_errors=1error_reporting=-1log_errors_max_len=0
Pacerier,2015年

ini_set("display_errors", "on");在php文件中添加这些行。
ELITE

Answers:


35

只是仔细检查一下,您是否将日志记录设置为error_reporting = E_ALL,并且display_errors = Onphp.ini?通常,这足以在IIS 7中显示这些错误。

接下来,查看您的IIS设置,因为它可能设置为仅在本地显示错误消息。在IIS 7配置编辑器中,它位于system.webServer-> httpErrors下。您需要将errorMode从DetailedLocalOnly更改为Detailed。显然,这现在意味着浏览您网站的任何人都可以看到该错误。

在此处输入图片说明

在此处输入图片说明

另外,如果您希望将它们保留在本地,则可以使用远程桌面登录服务器并从那里运行应用程序。


1
是的,我检查了,所有配置都正确。

添加了一些更多的故障排除信息
Sam Cogan

1
从“ DetailedLocalOnly”将errorMode更改为“ Detailed”可以解决问题。谢谢!

1
我还必须删除system.webServer下的HTTP错误集合。直到我才使用PHP。

1
system.webServer用我的鲜血突出显示并添加注释:“是的,有连击”。
DiGi

2

只是想补充一下,应该将“ existingResponse”设置为“ PassThrough”。没有该附加设置,我没有收到任何实际的错误消息。


1
此设置在哪里?
尤金·马拉

0

您可以使用IIS管理器GUI轻松完成此操作。选择您的站点,然后双击错误页面。然后点击“编辑功能设置...”,然后选择“详细错误”选项,而不是默认的“本地请求详细信息和远程请求的自定义错误页面”。Voilà,就这么简单!


哪里可以显示日志和错误?
Jukebox的

0

我必须将Web服务器上的设置转换为php配置,并且那里有一个用于错误报告的设置,默认情况下设置为生产。即使更改了php.ini和此处的建议,也不得不将其更改为开发状态。我在2008 R2上使用iis 7.5。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.