目录的所有权归 apache 所有

目录的所有权归 apache 所有

我读过类似的问题和答案,例如这个。但我仍然面临一个问题,我还没有找到完美的解决方案。

我的情况如下:我有一个位于 的 symfony4 项目var/www/project。此目录中有scr、等目录configpublic它们都归 拥有user:user(具有 root 访问权限)。此项目中只有一个目录var(其中存储了缓存和日志)归 拥有www-data:www-data,因此 apache 可以读取和写入此目录。

每当我需要清除缓存时,我必须运行php bin/console cache:clearuser由于设置的权限,我无法以 执行此操作。如果我使用 更改所有权sudo chown user:user var,则可以运行该命令。但 apache 将无法再读取文件。然后我可以使用 再次更改所有权,sudo chown www-data:www-data var一切又恢复正常,但我猜一定有一个更简单的解决方案。

附加信息:无论何时php bin/console cache:clear执行,目录中的所有文件var都设置为权限 664。

我考虑过将 Apache 的默认用户更改为user,但是该用户具有 root 访问权限,所以我认为这不是一个好主意。我该如何解决这个问题?

答案1

可能该user帐户未添加到组中。通过运行以下命令www-data验证该user帐户是否在组中:www-data

groups USER

(其中 USER 是帐户的用户名)并检查是否www-data在返回的组列表中。

如果不是,则按以下方式添加userwww-data组中:

sudo usermod -a -G www-data  USER

并再次验证。

参考:将用户添加到组 www-data

相关内容