Laravel Daily 日志权限问题
问题:
执行 schedule:run 的是 www 用户,
crontab -e -u www
* * * * * cd /my_project/ && php artisan schedule:run >> /dev/null 2>&1
并且在 logging 中也配置了
'daily' => [
...
'permission' => 0666,
],
创建出来的日志文件权限依然是 644,导致写入日志失败报错。
分析:
分析具体原因可能是因为 Linux 默认的创建文件模式设定为 644,即 umask 的优先级高于 Laravel 的 logging.php 配置,导致创建文件权限错误。
CLI 输入 umask 查看
umask
0022
Unix 系统对于新创建文件基准权限是 666 再减去 umask 的 022,导致创建文件的权限就是 644,猜测是这样。
解决方法
* * * * * umask 000 && cd /my_project/ && php artisan schedule:run >> /dev/null 2>&1
php artisan config:clear
忘了清缓存了。
本作品采用《CC 协议》,转载必须注明作者和本文链接
关于 LearnKu
推荐文章: