【问题标题】:Codeigniter app returns blank output in CLICodeigniter 应用程序在 CLI 中返回空白输出
【发布时间】:2012-02-22 03:32:48
【问题描述】:

我正在设置只能在 CLI 中运行的 cron 作业控制器,我还没有开始构建任何东西,只是在测试阶段使用 CI 的示例。但是,在运行它时,我没有得到任何输出或其他任何东西,只是一个新行,这是我运行的命令:

root@serv$ php /var/www/ci/index.php tools message
root@serv

正如您在 second 行中看到的那样,我没有得到任何输出,只是运行命令的新行,但我不明白为什么并且无法调试它。代码包含以下内容:

<?php
class Tools extends CI_Controller {

    public function message($to = 'World')
    {
        echo "Hello {$to}!".PHP_EOL;
    }
}
?>

在我的配置文件中,$config['uri_protocol'] 设置为AUTO,所以这似乎不是问题。

我该如何调试呢?我可能需要处理哪些选项?

我还有display_errorserror_reportingE_ALL

【问题讨论】:

  • 嗯,它可以工作 - 我只是用基本的 CI 设置测试了它(config.php 没有更改)。
  • @stealthyninja 不,CodeIgniter 的 CLI 语法是 php index.php controller method params
  • @Repox 这很奇怪,但我不知道我对 CI 配置所做的更改需要注意什么,这会影响 CLI 应用程序。我不明白为什么它没有返回任何输出?
  • 任何日志文件输出?你不会得到 anything... 似乎很奇怪
  • @landons 不,没有记录任何类型的错误。

标签: php codeigniter command-line-interface


【解决方案1】:

我发现了问题,这是我在自动加载库上遇到的 redirect('domain.com'); exit; 的问题,因为它与数据库中的域匹配,这样 CLI 在检测到时不会为域提供服务,因此我包括redirect('domain.com')exit,这就是为什么我没有看到任何输出。

【讨论】:

    【解决方案2】:

    我在玩 codeigniter 的 cli 时也遇到了这个问题。我花了一段时间来解决这个问题,发现我忘记在运行redirect 函数的登录模型上排除我的控制器。

    【讨论】:

    • 为我节省了大约 4 小时的咒骂时间,试图理解为什么,我欠你的
    【解决方案3】:

    这可能是一个愚蠢的建议,但不妨试一试...@lolwut,如果不使用“echo”,也许您必须“返回”输出?

    【讨论】:

    • 不,这没有帮助 - 仍然是相同的效果。
    【解决方案4】:

    我有一个遵循本指南的应用程序:http://codeigniter.com/wiki/Category:Advanced::CronScript 正在运行(并产生输出)。我这样做的时候CI只有1.7.2,但它可能仍然存在

    【讨论】:

      【解决方案5】:

      (CodeIgniter 2.2.0)

      在 /application/config/routes.php 中添加路由

      为了……

      <?php
      class Cron extends CI_Controller
      {    
          public function process_dumps()
          {
              echo "Processing dumps..." . PHP_EOL;
          }
      }
      ?>
      

      添加...

      $route['cron/process_dumps'] = 'cron/process_dumps'
      

      没有这一行,CLI 上就没有输出!

      【讨论】:

        【解决方案6】:

        我想你可以在Codeigniter Wiki找到答案。

        通过使用参数controllerfunction调用cron.php,然后定义CRON_CI_INDEX来引用你的主index.php的文件路径。

        例如,

        php /var/www/ci/cron.php --run=/tools/message
        

        【讨论】:

        • 这也没有帮助:(我仍然没有生成输出,也没有日志。
        猜你喜欢
        • 2012-12-17
        • 1970-01-01
        • 1970-01-01
        • 2016-03-20
        • 2017-11-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多