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

2016-08-17 10:40:41 +08:00
 trepwq

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 启动的。 求解决办法。。

2541 次点击
所在节点    问与答
4 条回复
Dlad
2016-08-17 10:53:50 +08:00
我使用 laravel/console 时也曾遇到这个问题,同求最佳实践。
noea
2016-08-17 10:59:16 +08:00
笨办法,
crontab 12 点的时候,先看日志是否存在,否则, touch ,执行 chown 把日志 owner 改回去。
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
2016-08-27 16:00:29 +08:00
php artisan 用了 root 用户执行

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/299821

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX