Laravel8日志文件权限问题

环境:Ubuntu + PHP7.4 + Laravel8

今天刚刚发现我的队列一直异常报错,查了队列的failed_jobs内容,原来是写日志的时候,php-fpm的用户权限不够导致的。
大概回忆了一下:我是通过crontab执行定时任务,然后把任务放入队列里面的。我的crontab是使用root用户执行的,所以日志也是root【如下图】:

Laravel8日志文件权限问题

而队列放在supervisor监听,使用www用户【php-fpm和nginx也是www用户】,所以一直没有权限写入。

所以我修改了crontab也是www用户执行:
采用命令

sudo crontab -u www -e 

以 www 用户身份配置定时任务

还有一种是通过修改config\logging.php配置实现。

'daily' => [
  'driver' => 'daily',
  'path' => env('LOG_FILE', storage_path('logs/laravel.log')),
  'level' => env('LOG_LEVEL', 'debug'),
  'days' => 0,
  'permission'  =>  0664
],

0664,即 rw-rw-r--,允许同组其它用户也可以写入。
如果 0664 还不够,就再加到 0666,允许其它用户也可写入。

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 3
slowlyo

0666可以, 简单直接

3年前 评论
bluememory (楼主) 3年前
slowlyo (作者) 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!