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 协议》,转载必须注明作者和本文链接
下面这样配置也能解决问题 问答:laravel写入日志时的执行环境问题?
sudo -E -u www php artisan **
确定定时任务用户跟php-fpm(或者启动服务的用户)一致就没问题
微信号多少