【发布时间】:2021-06-19 01:07:06
【问题描述】:
在我的 laravel 项目中,在 /storage/logs 文件夹中,每天都会创建一个日志文件。如果 file 是由 apache 创建的,那么所有者和所有者组将变为 www-data,如果 file 是由 vs-code 创建的,则它的所有者并且所有者组变为 habib(因为 vs-code 在 habib 用户下运行)
这就是问题所在。
-在第一种情况下,当 apache 创建该文件时,如果 vs-code 想要编辑该文件,则会出错。
-在第二种情况下,当 vs-code 创建该文件时,如果 apache 想要编辑该文件,则会出错。
错误是:文件流无法以追加模式打开。
我是如何每天解决这个问题的?
好吧,我每天都在运行以下命令来消除上述错误,我手动设置了文件的所有权
sudo chown habib:www-data laravel-2021-03-22.log
我想要什么?我想以这样一种方式设置所有权,它会在创建文件时自动将新创建的文件的所有者设为 habib,并将所有者组设为 www-data。请告诉我这是否是一个正确的解决方案,如果是,那么如何实施?
【问题讨论】:
-
您是否尝试过授予对文件夹的访问权限,而不是
sudo chown habib:www-data logs或`sudo chown -R habib:www-data logs` -
是的,已经这样做了,我的日志文件夹的所有者是 habib,所有者组是 www-data
-
您的第二个命令将更新现有文件的所有权。我说的是新创建的文件。
-
可以将www-data用户添加到habib组,将habib添加到www-data组,也可以在config/logging.php中设置权限为0664
-
你可以试试另外一种方法,就是给新创建的文件添加权限 比如
permission => 0666laravel.com/docs/8.x/…
标签: linux laravel apache ownership