在IIS上托管的PHP在每次备用呼叫上都会提供500

时间:2014-08-25 06:55:58

标签: php windows apache batch-file iis

我有一个PHP脚本,它使用passthru()函数执行批处理(.bat)文件。批处理文件的输出通过echo语句打印。

这个PHP脚本在Apache Web服务器上托管时工作得非常好,但是当在IIS 7.5上托管时,相同的PHP脚本会在每次备用调用时产生500.0错误

我做了一些研究,发现如果PHP脚本需要很长时间才能执行,浏览器就会没有响应。

因此,我编辑了PHP脚本以写入“执行批处理文件之前”和“执行批处理文件之后”之类的文件。

由于显示500.0错误,文件仍然按上述行更新。这得出结论,虽然脚本正在执行,但浏览器显示500.0

是否有可以在IIS中调整的设置? 仅IIS 7.5发生此问题。当我使用Apache时,它就像一个魅力。

1 个答案:

答案 0 :(得分:1)

我和你有完全相同的问题;通过exec(),shell_exec()等执行批处理文件,每次刷新页面时都会导致内部500服务器错误。

我通过从批处理文件中删除所有PAUSE命令来解决此问题。

确保您在批处理文件的流程中没有任何中断。也就是说,如果在执行批处理脚本期间的任何时候需要用户输入,那么php将挂起并且服务器将超时。

希望这有帮助!

(我发表评论,但我没有50个声誉)