我有一个来自MediaTemple的DV 4.0。
当我运行一个需要循环超过5000次的php文件脚本时,我收到了“500内部服务器错误”。
代码似乎是因为当我用200时间循环执行时,会打印结果。
我的“max_input_time”,“max_execution_time”,“default_socket_timeout”以及所有其他php参数都不是问题(我猜,所有设置为9000且memory_limit为-1)
我明白了:
[Sat Jan 11 19:25:22 2014] [notice] caught SIGTERM, shutting down
这是因为apache重启。 我的问题是: 如何在我的脚本中循环超过5000次而不会崩溃我的系统; - )
谢谢
答案 0 :(得分:6)
你的问题是如何循环超过5000次。
循环5000或5亿次不是问题。你在其他地方有问题。
SIGTERM用于重启Apache(如果在init中设置为自动重启):http://httpd.apache.org/docs/2.2/stopping.html
您看到的日志条目应该在那里,因为SIGTERM就是出于此目的。也许,apache没有崩溃,但你的数据有问题或者执行时间不足。
它可能是自定义PHP模块或代码。在发生故障时查看apache访问/错误日志。不要忘记打开错误登录。它可以帮助您找出问题所在。是吗?如果在DEV模式下,总是会出现错误报告!!!
如果它真的崩溃了,甚至没有提供静态内容,那么这听起来像某种线程/连接耗尽问题。但是,您的代码似乎有问题并且您可以抑制错误。
如果您确定您的身边/代码没有任何问题(如果它在另一个系统上运行),您可能需要重新安装apache和php,它将解决有任何损坏的文件或您错误配置它。