Laravel artisan 写入日志的用户和 fpm 不一致,导致无法写入日志问题
前言
当我们需要使用 artisan
命令行,或者使用 laravel
的定时任务,这个时候写入日志的用户可能默认会属于 root
,但 php-fpm
一般都在 php-fpm.conf
文件中指定了我们的用户和用户组属于 www
,这时候如果定时任务先写入了日志,我们在调用接口,那么会报无法写入的错误
UnexpectedValueException : The stream or file“/test.com/storage/logs/laravel-2020-04-27.log” could not be opened:failed to open stream: Permission denied
如何解决这个问题。
1. crontab 指定用户执行脚本
crontab -e -u www
2. 更改 laravel logging 日志配置文件
'command' => [
'driver' => 'daily',
'path' => storage_path('logs/command/command.log'),
'days' => 7,
// 给 command 写入的日志文件赋予权限,允许其它用户也可写入。
'permission' => '0666'
],
参考文章
Laravel 日志文件权限问题 | Laravel China 社区 (learnku.com)
laravel 修改日志权限
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: