我遇到这个非常奇怪的500内部服务器错误(标头之前的脚本输出结束)。当我尝试执行一个需要相当长时间才能运行的.php文件时,就会发生这种情况。我已通过在文件中添加set_time_limit(120); ini_set('max_execution_time', 120);
来采取预防措施。 2分钟就足够了。我还宣布header('Content-Type: text/plain');
。
现在奇怪的是 - 大部分时间,代码实际上完全执行,直到最后exit();
的所有内容都已完全执行(我无法检查最后一个退出是否存在)。但是,我仍然收到500内部服务器错误(日志显示为End of script output before headers
)。
即使是奇怪的是,如果我在5-10分钟内第二次运行文件,那么一切都运行得很好。 有时,代码会在事物中间停止并抛出错误。
如果重要,当脚本在中间停止时,它通常在从yml文件中读取项目并将它们写入csv文件的foreach循环中。它总是在循环完成时。
我真的不知道为什么会这样。
任何帮助将不胜感激。
非常感谢,
fraeckey
答案 0 :(得分:0)
您很可能遇到网络服务器问题。如果它是apache,则有Timeout Directive。您可能还遇到内存问题,这些问题同样在php.ini和apache中都有设置。但是没有更多的细节......我担心这和我能提供的一样多。
答案 1 :(得分:-1)
如果您使用的是Wordpress,可能会出现一些语法错误。在开发模式下运行代码。你会看到错误。否则它会继续显示500错误。