从SSH运行PHP脚本是否绕过最大执行时间?

时间:2010-06-29 20:46:51

标签: php facebook

基本上我有一个问题。我使用cron作业向我的用户发布了facebook状态,但是当我从浏览器运行cron时,我在大约30秒后收到错误。我编辑了.ini文件以允许最长的执行时间,但它似乎没有用。

它会更新前700个用户的状态,但之后会停止。

我可以从终端运行它还是有什么我可以检查/做的事情来解决这个问题?

2 个答案:

答案 0 :(得分:2)

从命令行运行PHP脚本时,默认的最大执行时间为0 - 即无限制。在HTTP上下文中,还有其他可以关闭脚本的设置,包括Apache Timeout指令。这绝对是我通过PHP CLI运行的一项工作。

我会启用error logging来描述您的脚本遇到的限制。有很多可能性 - 你可能会达到内存限制,执行时间可能太短,Facebook API可能会限制你的请求等等。

答案 1 :(得分:0)

确保您可以通过以下方式看到错误:

error_reporting(E_ALL);
ini_set('display_errors',1);

位于脚本的顶部。

你可能遇到了max_execution_time上限,或者你的内存不足等等。错误信息有助于确定。

正如Frank Farmer在评论中暗示的那样,您可以在脚本中使用set_time_limit(0);来允许它无限期地运行。

如果您遇到内存限制问题,可以在脚本中加快时间内存限制(ini_set('memory_limit',...);) - 但是您应该考虑修复代码,这样就不会消耗内存。