新闻中心

记录团队成长点滴以及对技术、理念的探索,同时我们乐于分享!

Laravel artisan 写入日志的用户和 fpm 不一致,导致无法写入日志问题

2022-02-10 10:51:07 分类:技术学堂

当我们需要使用 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'

],