laravel里的日志文件所属用户是当前进程的用户
比如apache2和nginx用www-data启动,则log的用户也是www-data
但是有时我们使用crontab运行Command时,使用的用户是root
此时产生的log所属用户是root
而在laravel的RotatingFileHandler里有这样一句话
* @param int|null $filePermission Optional file permissions (default (0644) are only for owner read/write)
说明laravel日志文件默认权限是0644,则只有拥有者可以写入日志
此时如果其他用户的进程执行操作则会报错
2.解决修改laravel日志配置
'daily' => [
'driver' => 'daily',
'path' => storage_path('logs/laravel.log'),
'level' => 'debug',
'days' => 7,
'permission' => '0777',
],
- 设置日志文件权限为0777,则任何人的进程都可以写入此日志



