4

我需要使用 CodeIgniter 对文件运行 cron 作业,但 CodeIgniter 不会让我直接运行文件。IE

我可以在浏览器中运行控制器:

api.example.com/index.php/cron

我的主机只允许我运行 PHP 文件,我不能通过命令行来执行它,因为它不允许我运行 wget 或 curl。

如何让 CodeIgniter 运行如下文件:

api.example.com/index.php/application/controller/cron.php

我可以用我的主机调用该文件。

更新

以为我会更新任何对我有用的选项我最终改变了托管并执行以下操作。

http://devsforrest.com/116/setup-a-cronjob-to-run-every-5-minute-on-media-temple

4

7 回答 7

2

不确定这是否是您要查找的内容,或者我的回答是否错误,但是我使用 CodeIgniter 运行 CRON 作业的方式只是作为 cron 执行此操作:

php /path/to/index.php controller function

然后在控制器中,我在它的顶部有这个

if( PHP_SAPI != 'cli') exit('My Custom Error Message');
于 2012-07-13T03:45:38.093 回答
1

在您的情况下,使用 wget 命令以及您的 url 在 codeigniter 文件中运行 cron 它应该是:

wget api.example.com/index.php/controller/function

并注意不要使用文件路径使用调用您的函数的 url。

于 2012-07-14T08:50:01.720 回答
0

使用 .htaccess 将 .php 附加到请求的 URL,我没有测试下面的代码,但我希望它有所帮助。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [R=301]
于 2012-07-12T20:09:09.583 回答
0

使用 CURL 并通过 URL 调用您的 cronjob。如果在您的主机中启用了 CURL,那将是一个不错的选择。

在您网站的根文件夹中创建一个名为 cronjob.php 的 PHP 文件,并将以下脚本添加到文件中。

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"http://www.mysite.com/index.php/controller/method");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec ($ch);
curl_close ($ch);
?>

现在在 cronjob 中调用 php 文件 cronjob.php 它应该可以工作。

于 2012-07-13T06:31:31.130 回答
0
class Cron extends CI_Controller {
    function index($dummy) {

        // Crony command

    }
}

线:api.example.com/index.php/cron/index/dummy.php

基本上给出的示例使用第三个 uri 段来传递一个以.php您不使用的结尾的值。

否则你可以使用好的 ol' Routing

于 2012-07-12T20:07:40.957 回答
0

简单地

/usr/local/bin/php /home/cpanel_username/public_html/sub_folder/index.php param1 param2 optional_param3 optional_param3

这里

cpanel_username - 您的域 cpanel 的用户名,

sub_folder(可选) - 如果您的 Web 应用程序是任何文件夹

Param(parameters) - 指控制器及其方法(函数)

于 2018-12-13T17:50:53.023 回答
0

用于 Godaddy 托管的 Codeigniter API Cronjob

基于 CodeIgniter cron 作业 API 的每日 10 点

0   10  *   *   *   /usr/local/bin/php public_html/folder_name/index.php controller_name funcation_name

对我来说工作正常

于 2021-12-25T17:17:27.673 回答