当我们需要使用 artisan 命令行,或者使用 laravel 的定时任务,这个时候写入日志的用户可能默认会属于 root,但 php-fpm 一般都在 php-fpm.conf 文件中指定了我们的用户和用户组属于 www,这时候如果定时任务先写入了日志,我们在调用接口,那么会报无法写入的错误
UnexpectedValueException : The stream or file“/test.com/storage/logs/laravel-2021-01-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'
],