gpt4 book ai didi

php - 如何通过 CRON 运行 CodeIgniter 文件?

转载 作者:IT王子 更新时间:2023-10-29 00:16:15 27 4
gpt4 key购买 nike

我过去曾尝试过以下方法:

<?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 错误。将以下代码放在 CodeIgniter 的 show_404() 函数中

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]

这里我用 [me] 代替了我的实际用户名。

有什么想法吗?

最佳答案

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

然后通过wget调用

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

然后您可以在 Controller 内部使用日志来确保 cron 不会运行得太频繁,即如果 Google 机器人错误地触发它。

第二种方法是使用 lynx

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

关于php - 如何通过 CRON 运行 CodeIgniter 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2287070/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com