PHP脚本提前结束,没有错误和超时设置为0的证据

时间:2010-08-03 09:39:19

标签: php

我认为另一种脑筋急转弯的时间是非常罕见的。

PHP存在硬限制吗?还是在Apache?我昨晚有一个剧本,持续了大约20个小时。然后它就停止了,中间的脚本在一个随机的行上,没有我能找到的错误。

参数或者set_time_limit(0);在脚本中设置但我开始怀疑在其他地方是否有另外一个限制大约20个小时......

任何想法?

非常感谢提前。

编辑:这是作为wget运行的。

edit2:我将查看内存问题并回复您,感谢您的帮助!

edit3:哦,我应该指出这个脚本正在收集数据并将其存储在一个数组中,运行的时间越长它存储的就越多,所以是的,我有点面对“耗尽所有内存”这里的答案......

解决方案:为此操作设置更大的内存。谢谢大家。

6 个答案:

答案 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