我在开发机器上使用 IIS 作为 Web 服务器,进行 PHP Web 开发。或者至少,我正在尝试这样做。
当 PHP 脚本中出现语法错误时,当我在 Web 浏览器中打开该文件时,只会收到 503“内部服务器错误”以及此错误的默认 IIS 错误页面。某些浏览器根本无法打开该文件,可能是因为 503 HTTP 响应标头。
我希望 IIS 在这种情况下像 Apache Web 服务器一样运行:无论如何显示有错误的 PHP 文件,以便打印出错误消息。
如何才能做到这一点?
编辑:
PHP 设置:
显示错误
开启并且
错误报告
设置为 E_ALL
答案1
对于 IIS7,默认情况下不会传递错误。需要设置的是“existingResponse”。
您可以通过运行以下命令进行设置(确保将 {sitename} 替换为您的站点名称)。
c:\windows\system32\inetsrv\appcmd.exe set config "{sitename}" -section:system.webServer/httpErrors /existingResponse:"PassThrough" /commit:apphost
答案2
要启用 PHP(和其他语言)的详细错误,请从命令行运行此命令:
%windir%\system32\inetsrv\appcmd.exe set config -Section:system.webServer/httpErrors -errorMode:Detailed
然后
IISReset
答案3
最佳做法是“静默地”记录在文件中。
但是,您可以通过在 php.ini 文件中将以下值设置为日志文件来同时实现这两者
error_log=<File Location>
答案4
在您的 php.ini 中设置:
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT
display_errors = On
如果你想记录它们:
log_errors = On