我认为另一种脑筋急转弯的时间是非常罕见的。
PHP存在硬限制吗?还是在Apache?我昨晚有一个剧本,持续了大约20个小时。然后它就停止了,中间的脚本在一个随机的行上,没有我能找到的错误。
参数或者set_time_limit(0);在脚本中设置但我开始怀疑在其他地方是否有另外一个限制大约20个小时......
任何想法?
非常感谢提前。
编辑:这是作为wget运行的。
edit2:我将查看内存问题并回复您,感谢您的帮助!
edit3:哦,我应该指出这个脚本正在收集数据并将其存储在一个数组中,运行的时间越长它存储的就越多,所以是的,我有点面对“耗尽所有内存”这里的答案......
解决方案:为此操作设置更大的内存。谢谢大家。
答案 0 :(得分:4)
也许PHP会在一段时间后耗尽内存。
考虑在循环的每次迭代中强制PHP垃圾收集,这可能会揭示一些线索。 http://php.net/manual/en/function.gc-collect-cycles.php
答案 1 :(得分:3)
可能是php-cli崩溃了,或者你的服务器重启了。我不认为php是长期执行的事情
答案 2 :(得分:2)
我有一个运行了几个月没有问题的脚本。我只是要杀死终止脚本的进程。所以如果你有set_time_limit(0)就没有限制;在你的代码中。你看过你的操作系统的系统和调试日志了吗?这可能会为php或apache崩溃提供进一步的线索。
答案 3 :(得分:2)
尽管如此,请检查apache日志,/ var / log / error.log,或在windows中查看“事件”。
答案 4 :(得分:0)
因为你使用了wget,我假设它在apache下运行。也许是apache对正在运行的脚本有限制,而不是你的php应用程序。
你可以通过从cli版本
运行应用程序来测试它答案 5 :(得分:-1)
检查 php.ini 文件,找到 max_execution_time 对该部分进行更改,输入需要几秒钟。
但要小心编辑php.ini