我过去尝试过以下方法:
<?php
set_time_limit(0);
$_SERVER['PATH_INFO'] = 'cron/controller/index';
$_SERVER['REQUEST_URI'] = 'cron/controller/index';
require_once('index.php');
?>
并将其放入 codeigniter 安装目录中的文件中,命名为 cron.php,然后通过以下方式调用它:
php /home/[username]/public_html/my_project/cron.php
如果我在浏览器中输入 cron.php 的 URL,它会完美运行,但是每当它通过 CRON 运行时,我都会收到 404 错误。将以下代码放入show_404()
代码点火器的功能
function show_404($page = '')
{
print_r($_SERVER);
echo "\n\n";
die ($page);
}
结果将以下输出通过电子邮件发送给我:
Array
(
[SHELL] => /bin/sh
[MAILTO] => [email protected] /cdn-cgi/l/email-protection
[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]
这里我用 [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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)