V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
trepwq
V2EX  ›  问与答

laravel 日志 owner 特殊情况下会变为 root,求解决办法

  •  
  •   trepwq · 2016-08-17 10:40:41 +08:00 · 2448 次点击
    这是一个创建于 2818 天前的主题,其中的信息可能已经有所发展或是发生改变。

    laravel 日志每天一个文件,每天第一条记录是 prod.ERROR: Predis\Connection\ConnectionException: Error while reading line from the server.****vendor/predis/predis/src/Connection/AbstractConnection.php:168 的时候文件 owener 为 root ,导致之后日志写不进去报错,而日志第一条为正常业务日志时是没有问题的。 猜测是其他以 root 用户启动的进程创建了当天的日志文件,导致 owner 为 root 。 artisan 是 root 运行的,看起来像是 supervisor 启动的。 求解决办法。。

    第 1 条附言  ·  2016-08-17 11:19:40 +08:00
    我把 supervisor 看护的 artisan 用户改为非 root 了,看看效果吧
    4 条回复    2016-08-27 16:00:29 +08:00
    Dlad
        1
    Dlad  
       2016-08-17 10:53:50 +08:00
    我使用 laravel/console 时也曾遇到这个问题,同求最佳实践。
    noea
        2
    noea  
       2016-08-17 10:59:16 +08:00
    笨办法,
    crontab 12 点的时候,先看日志是否存在,否则, touch ,执行 chown 把日志 owner 改回去。
    icemanpro
        3
    icemanpro  
       2016-08-17 11:24:33 +08:00
    bootstrap/app.php 中 加上

    $app->configureMonologUsing(function(Monolog\Logger $monolog) {
    $filename = storage_path('logs/laravel-'.php_sapi_name().'.log');
    $handler = new Monolog\Handler\RotatingFileHandler($filename);
    $monolog->pushHandler($handler);
    });

    通过 php_sapi_name 生成不同的 log
    hanyouchun66
        4
    hanyouchun66  
       2016-08-27 16:00:29 +08:00
    php artisan 用了 root 用户执行
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   912 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 18:41 · PVG 02:41 · LAX 11:41 · JFK 14:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.