【发布时间】:2019-12-06 03:40:16
【问题描述】:
如果在运行php artisan 命令时出现错误,日志文件将如下创建:
-rw-rw-r-- 1 user www-data 2,2K Jul 28 18:08 laravel-2019-07-28.log
如果通过网络浏览器使用应用程序时出现错误,日志文件将如下创建:
-rw-r--r-- 1 www-data www-data 2,2K Jul 28 16:10 laravel-2019-07-28.log
www-data 创建原始文件后,如果php artisan 命令出错,
它将抛出错误Permission denied,因为它无法写入日志
有没有办法为新创建的文件设置默认 chmod,以便它们始终拥有rw 用于组
或者你们有其他解决方案
重现此问题:
- 删除所有存储/日志/*.log 文件
- 调用一些不存在的 php artisan 命令,例如:
php artisan make:xy-> 这会出错并创建一个 .log 文件 - 在浏览器/logout 中调用路由 -> 这将尝试写入同一个日志文件,并会抛出无法写入日志“权限被拒绝”的错误
【问题讨论】:
-
似乎您正在以不同的用户身份运行 artisan 和您的网络服务器
-
当然......你如何运行你的工匠命令?作为 www-data 用户???
-
你试过 sudo -u www-data php artisan 吗?
-
不,我没有,这可能会以 www-data 用户的身份创建一个文件,但它似乎有点像运行
sudo -u www-data php artisan的皮塔饼,你不这么认为吗? -
对我来说,队列在后台执行时失败,因为后台工作人员由于权限问题无法登录日志文件,在“config/logging”中添加“permission”=> 0755 后它可以工作.php" 文件,位于日志频道(每日频道)