有时候 laravel 会出现无权限写日志的问题,我们可以按以下步骤去检查:
1、运行 laravel 的 php-fpm 是什么用户,一般是 www,最好不要使用 root。
2、应用目录中,storage/logs 有没有写权限。
3、是否有运行 laravel 的脚本或者 crontab,或者supervisor,并且运行的用户和 php-fpm 的是一样的,一般是www。如果以其他身份(例如root)运行的时候 laravel 需要写日志并且创建了日志文件,那这个日志文件是属于其他用户的,www 用户无法写入。
解决办法
1、修改 php-fpm 的配置文件,修改 user 和 group 为 www。
2、chmod a+w storage/logs
3、运行 php artisan 时指定 www 运行:
crontab -e -u www
具体crontab 如何指定执行用户:
http://www.phpriji.cn/blog/detail/20180713141903kgvomu.html
4、问题处理:
如果设置了 www ,但是脚本没执行,kernel 代码里面 不要增加 --force
$schedule->command('buyer:expired')->cron('* * * * *'); //这样即可
更多关于 Laravel 任务脚本设置:
https://laravel-china.org/docs/laravel/5.5/scheduling/1325