关于laravel的日志权限
2019-05-15
问题
系统在凌晨通过定时任务自动生成当天的日志文件,之后系统在写入日志时候,提示没有权限。
查看日志的权限
1 | $ ls |
分析
使用 crontab 执行定时任务时,默认用户是 root。而 laravel 的用户是 www-data ,是没有权限修改日志的。
解决一
使用 crontab 编辑定时任务列表的时候,是可以指定用户的,默认是编辑 root 用户的任务列表。
1 | sudo crontab -u root -l |
可以看见这是之前默认添加的定时任务,和 crontab -l 的执行结果一样
执行 crontab -e 的时候添加 -u 选项,并追加相应的用户名,就可以为指定的用户编辑定时任务列表。
1 | sudo crontab -u www-data -e |
写入之后查看
1 | sudo crontab -u www-data -l |
解决二
更改 storage 文件夹拥有者与 php-fpm.conf 运行用户一致,如 php-fpm.conf 配置为
1 | ; Unix user/group of processes |