我们正在迁移到运行Windows 2003和IIS 6的新服务器。当我的PHP代码运行时,它会在特定行上发出警告(我现在期待但很快就会修复)。但是,当它遇到警告时,会立即停止处理并在HTTP标头中返回500错误。通常,我希望PHP输出警告,但继续处理脚本。
当PHP发出警告时,IIS,FastCGI或PHP的配置中是否会出现500错误?
澄清:我不想压制警告;我希望他们展示。我不希望脚本停止处理警告。
答案 0 :(得分:10)
找出问题所在。 php.ini中的log_errors
设置为On
,但error_log
未设置。这导致PHP停止一切。将display_errors
设置为on
后,现在会显示警告,以便我可以看到输出中的内容在哪里断开。
这个帖子很有帮助:http://forums.iis.net/p/1146102/1856222.aspx#1856222
答案 1 :(得分:0)
我不知道IIS或FastCGI,但afaik php没有这样的选择。但是,您可以将error_reporting
(在php.ini
中)设置为
E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
发出警告消失。
答案 2 :(得分:0)
这也很大程度上取决于你的PHP代码,如果你在代码中做了一些复杂的事情并且发生错误,web服务器有时会抛出500个错误。我建议你:
在行上放置一个@
来抑制错误,即:
$ X = @创建my_function($ Y);
查看您的网络服务器日志,了解您收到的确切错误消息,然后在此处发布,也许我们可以为您提供更好的解决方案。