2

假设我的 storage/logs 目录目前是空的。我向邮递员提出请求,但出现错误。因此,Laravel 尝试将其记录到 storage/logs 目录。由于它是空的,它会创建一个新文件。

在这里 - 请注意所有者/权限:

-rw-r--r-- 1 www-data www-data 9955 Dec 29 10:29 laravel-2020-12-29.log

我在这个答案中读到用户应该是我(让我们称之为我的用户myuser)并且我和该组都应该具有读写权限。(我认为这是正确的——myuser例如,如果我想运行工匠 cmd 或某事,则应该是所有者)

因此,我运行以下两个命令:

sudo chown -R $USER:www-data app/storage
sudo chmod -R ug+w app/storage

那么文件的权限就变成了:

-rw-rw-r-- 1 myuser www-data 9955 Dec 29 10:29 laravel-2020-12-29.log

现在,如果我再次尝试从 Postman 发出请求,它仍然有效。

但是如果我第二天再试一次(或者如果我删除文件并再试一次),则会再次使用初始权限创建新文件:

-rw-r--r-- 1 www-data www-data 9955 Dec 29 10:32 laravel-2020-12-29.log

为什么会这样?应该怎么做才能将权限设置为正确的?

4

1 回答 1

2

您可以通过更改 laravel 项目的配置来解决此问题
转到此路径config/logging.php并找到具有dailyas 键的行并像这样进行更改,例如:

'daily' => [
    ...
    'permission' => 0664,
],

之后,使用此权限生成日志文件

于 2020-12-29T11:22:33.743 回答