PHP警告导致脚本在运行FastCGI的IIS上暂停

时间:2009-01-07 14:40:34

标签: php iis-6 windows-server-2003 fastcgi

我们正在迁移到运行Windows 2003和IIS 6的新服务器。当我的PHP代码运行时,它会在特定行上发出警告(我现在期待但很快就会修复)。但是,当它遇到警告时,会立即停止处理并在HTTP标头中返回500错误。通常,我希望PHP输出警告,但继续处理脚本。

当PHP发出警告时,IIS,FastCGI或PHP的配置中是否会出现500错误?

澄清:我不想压制警告;我希望他们展示。我不希望脚本停止处理警告。

3 个答案:

答案 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个错误。我建议你:

  1. 在行上放置一个@来抑制错误,即:

    $ X = @创建my_function($ Y);

  2. 查看您的网络服务器日志,了解您收到的确切错误消息,然后在此处发布,也许我们可以为您提供更好的解决方案。