我过去尝试过以下方法:
并将其放在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]
在这里,我[我]代替我的实际用户名.
有任何想法吗?
通过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
您可能还想添加--spider来忽略响应.这会停止请求超时:
wget -O - -q -t 1 --spider http://www.example.com/cron/run