首页 > 解决方案 > 在 Codeigniter 下无法使用共享主机 cPanel cronjob

问题描述

尽管有很多类似主题的帖子,但我找不到任何符合我在此简要描述的案例的人。这是测试脚本

    <?php

    if (!defined('BASEPATH')) exit('No direct script access allowed');
    require 'DashboardBase.php';

    class Hello extends CI_Controller {

            public function message($to = 'World')
            {
                    echo "Hello {$to}!".PHP_EOL;
                    print "Hello {$to}!".PHP_EOL;
                    log_message('error',"Hello {$to}!".PHP_EOL);
            }
    }

    ?>

网络服务器在共享主机下;它用于cPanel;使用 Codeigniter。

正常工作的外部 URL 是:https ://pharmacomparison.com/adminPanel/hello/message/federico

我已经在我的个人电子邮件中激活了 cronjob 输出通知,可以注意到我还将输出保存在错误日志中。

在这里我的 cronjob 定义尝试

  1. (由 CodeIgniter 手册建议): /usr/local/bin/php public_html/adminPanel hello message "federico" --> 没有电子邮件通知;“错误”日志中没有输出

  2. 小修改,添加了“/”:/usr/local/bin/php public_html/adminPanel/ hello message "federico" --> 没有邮件通​​知;“错误”日志中没有输出

  3. (假设提前错误,但让我们尝试) /usr/local/bin/php public_html/adminPanel/hello message "federico" --> 电子邮件通知报告“无法打开输入文件:public_html/adminPanel/hello”;“错误”日志中没有任何内容

  4. (假设提前错误,但让我们试试)/usr/local/bin/php public_html/adminPanel/hello.php message "federico" --> no email notification, in 'error' log "ERROR - 2020-01-10 16 :09:25 --> 404 页面未找到:Hellophp/message"

  5. 完整的真实磁盘路径:通知电子邮件报告“不允许直接脚本访问”

基本上,假设正确的前两次尝试不会产生任何错误,甚至不会产生错误。有任何想法吗?

标签: phpcodeignitercroncpanelshared-hosting

解决方案


您没有正确运行它,这里是如何通过 CLI 在 codeigniter 中运行一个函数。

请试试这个

php /usr/local/bin/php public_html/adminPanel/index.php Hello message "federico"

所有函数调用都必须经过 index.php

php /path_to_project_root/index.php ControllerName function "argument"


推荐阅读