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