如何将其重写为每天运行时间超过30秒的cron?另外,我是否需要编辑.htaccess
目录中的php.ini
或cron.php
文件来说明什么?在浏览器上运行时间超过30秒;在shell上,它也运行得很好。但作为一个cron设置任务,它在30秒后死亡。我在1and1分享托管。
0 12 * * * php5 /this/is/the/file/cron.php
答案 0 :(得分:4)
有几件事可能会终止你的脚本。一个可能是php.ini文件中设置的最长执行时间。如果是这种情况,您可以在脚本中使用set_time_limit(0);
覆盖它,其中零表示没有限制,任何大于零的数字是允许脚本在终止之前运行的秒数。重要的是要注意,这个时间不包括浏览器发出请求所需的时间,因此文件上传时间不计算在这里。
如果您处于共享托管环境(如Dreamhost)中,那么它们会有一个进程监视,它会在设置的时间限制后终止任何PHP进程。你无法解决这些问题。您需要联系托管服务提供商,了解您需要做什么才能获得更长时间运行脚本的访问权限(对于Dreamhost,他们希望您拥有他们的PS产品)。
答案 1 :(得分:3)
使用此语法启动php:
php -c /path/to/another/php.ini /this/is/the/file/cron.php
然后,您可以在不同的php.ini
文件中指定不同的超时(或无超时)。
答案 2 :(得分:3)
ini_set('max_execution_time', 600);
将它添加到php文件的顶部,它将运行600秒。如果你想要的话,不建议你做任何事情。
答案 3 :(得分:2)
如果使用PHP CLI,则无需设置更高的max_execution_time:
“ max_execution_time”的CLI SAPI默认值设置为无限制。
http://nl3.php.net/manual/en/features.commandline.differences.php
答案 4 :(得分:1)
我只会使用wget http://path.to.myscript.php
如果它在30之后死亡,您可能需要在max_execution_time = 60
中设置php.ini
以允许脚本运行超过30秒。
答案 5 :(得分:0)
您也可以使用ini_set('max_execution_time', 60)
但正如手册页所说,在某些情况下(即在安全模式下运行),这根本不起作用:http://uk.php.net/manual/en/info.configuration.php#ini.max-execution-time
客户端行的php.ini也可能具有与浏览器不同的最大执行值。我有时见过它。