当前位置:  开发笔记 > 编程语言 > 正文

如何通过CRON运行CodeIgniter文件?

如何解决《如何通过CRON运行CodeIgniter文件?》经验,为你挑选了2个好方法。

我过去尝试过以下方法:


并将其放在codeigniter安装目录中的一个文件中,将其命名为cron.php,然后通过以下方式调用它:

php /home/[username]/public_html/my_project/cron.php

如果我在浏览器中输入cron.php的URL,它可以正常工作,但无论何时通过CRON运行我都会收到404错误.将以下代码放在show_404()CodeIgniter 的函数中

function show_404($page = '')
{
   print_r($_SERVER);
   echo "\n\n";
   die ($page);
}

导致以下输出通过电子邮件发送给我:

Array
(
   [SHELL] => /bin/sh
   [MAILTO] => me@gmail.com
   [USER] => [me]
   [PATH] => /usr/bin:/bin
   [PWD] => /home/[me]
   [SHLVL] => 1
   [HOME] => /home/[me]
   [LOGNAME] => [me]
   [_] => /usr/bin/php
   [PHP_SELF] =>
   [REQUEST_TIME] => 1266479641
   [argv] => Array
       (
           [0] => /home/[me]/public_html/my_project/cron.php
       )

   [argc] => 1
   [PATH_INFO] => cron/controller/index
   [REQUEST_URI] => cron/controllers/index
)


home/[me]

在这里,我[我]代替我的实际用户名.

有任何想法吗?



1> Jon Winstanl..:

通过CodeIgniter运行cron的最简单方法是通过您的应用程序提供cron URL.

然后通过wget调用它

wget -O - -q -t 1 http://www.example.com/cron/run

在控制器内部,您可以使用日志来确保cron不会经常运行,即如果Google机器人错误地触发它.

第二种方法是使用lynx

/usr/local/bin/lynx -source http://www.example.com/cron/run


它不会使用CLI,如果受到apache超时的限制,这不是最好的选择.如果你有一个需要运行很长时间的脚本,请使用引导程序

2> 小智..:

您可能还想添加--spider来忽略响应.这会停止请求超时:

wget -O - -q -t 1 --spider http://www.example.com/cron/run

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有