sszwei 发表于 2018-12-25 18:17:41

生产环境cli问题

大佬们好,遇到个问题
就是使用了CI的多环境 config内添加了production目录 存放线上配置。
现在我使用CI的CLI跑定时,DB redis然后报读不到production的线上配置,别的程序DB REDIS都正常,能肯定是走ENVIRONMENT 代码文件都www:www 774权限

把production的配置复制到config下就没问题。。。不过还是想解决下这个问题。。

Hex 发表于 2018-12-26 14:19:12

是最新的 3.1.9 版本吗?

sszwei 发表于 2018-12-26 16:42:19

Hex 发表于 2018-12-26 14:19
是最新的 3.1.9 版本吗?

嗯 3.1.9

Hex 发表于 2018-12-27 13:33:28

贴代码看一下~

sszwei 发表于 2018-12-28 16:08:29

本帖最后由 sszwei 于 2018-12-28 16:09 编辑

Hex 发表于 2018-12-27 13:33
贴代码看一下~
class Cron extends CI_Controller
{
public function colonelIncome($code)
{
    if(is_cli()):
      $time = time();
      $newIDs = $newResult = [];
      $sql = "SELECT `id`, `uid`, `number`, `value` FROM `a` WHERE (`time` + 7 * 86400) < ". time()." AND `status` = 0LIMIT 1000 ";/*超过7天*/
      $query = $this->db->query($sql);
      $result = $query->result();

      if( $result != NULL ):
            foreach ($result as $val):                $newIDs[] = $val;                $newResult[] = $val;
            endforeach;
      endif;

      if( ! empty($newIDs) AND! empty($newResult) ):
            $data = [
                'status' => 1,
            ];
            $this->db->where_in('id', $newIDs);
            $this->db->update('a', $data);

            $this->db->insert_batch('b', $newResult);
      endif;

      log_message('debug', 'Model:colonelIncome;Params:'.implode('-', $newIDs));
      echo 'Colonel_Income Table Status 1 OK';exit;
    else:
      echo 'x';exit;
    endif;
}
}




执行OK,就是config读取不了production的配置,别的功能就OK。。能做到覆盖读取
http://img.shequpifa.com/www/product/1545984459805.png

Hex 发表于 2018-12-28 19:09:16

改成浏览器访问就能读取到配置么?

sszwei 发表于 2018-12-29 09:24:32

Hex 发表于 2018-12-28 19:09
改成浏览器访问就能读取到配置么?

对的,都正常,线上使用config/production是方便部署。按CI文档的多环境来说CLI这种使用情况不应该没考虑到吧?

Hex 发表于 2018-12-29 18:29:04

sszwei 发表于 2018-12-29 09:24
对的,都正常,线上使用config/production是方便部署。按CI文档的多环境来说CLI这种使用情况不应该没考虑 ...

不排除是这种情况,具体需要看一下源码来确定,你可以先按不支持来做。

Skiy 发表于 2019-1-2 13:46:34

env 是通过 $_SERVER识别的,CLI下没法识别,需要你手动配置ENV。
我建议是建一个 env.php 的文件,直接配置参数值,线上和线下手动改。
页: [1]
查看完整版本: 生产环境cli问题