有时候 laravel 会出现无权限写日志的问题,我们可以按以下步骤去检查:
- 运行 laravel 的 php-fpm 是什么用户,一般是 www,最好不要使用 root。
- 应用目录中,storage/logs 有没有写权限。
- 是否有运行 laravel 的脚本或者 crontab,或者supervisor,并且运行的用户和 php-fpm 的是一样的,一般是www。如果以其他身份(例如root)运行的时候 laravel 需要写日志并且创建了日志文件,那这个日志文件是属于其他用户的,www 用户无法写入。
解决办法
- 修改 php-fpm 的配置文件,修改 user 和 group 为 www。
- chmod a+w storage/logs
- 运行 php artisan 时 su www &,crontab 添加执行用户 * www command