有时候 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
我的项目最近常常出现今天修改了日志权限,明天新建日志,又变成root用户,导致500错误,追溯问题是使用了supervisor开启了队列,但是用了root用户启动,将root改为www就好了
网友评论