【已解决】Laravel在Linux下日志文件权限问题。

laravel在web模式下产生的日志文件(storage/logs)由www-data用户创建,而在命令行(php artisan)模式下是由当前登录系统用户创建。

这两个用户不在同一个组下,就导致后操作的功能无法对日志文件进行写操作。解决这个问题需要修改Laravel在使用Monolog框架时的源代码。

需要修改的文件在vendor/laravel/framework/src/Illuminate/Log/Writer.php 第229行。

$handler = new RotatingFileHandler($path, $days, $this->parseLevel($level))
改为
$handler = new RotatingFileHandler($path, $days, $this->parseLevel($level),true,0777)

该代码在useDailyFiles函数中,因为config/app.php中对日志框架的配置是
'log' => 'daily',
所以使用的是RotatingFileHandler,构造函数中第五个参数是指定创建文件的权限。

Laravel交流群:472163304

0 个评论

要回复文章请先登录注册