我读过类似的问题和答案,例如这个。但我仍然面临一个问题,我还没有找到完美的解决方案。
我的情况如下:我有一个位于 的 symfony4 项目var/www/project
。此目录中有scr
、等目录config
,public
它们都归 拥有user:user
(具有 root 访问权限)。此项目中只有一个目录var
(其中存储了缓存和日志)归 拥有www-data:www-data
,因此 apache 可以读取和写入此目录。
每当我需要清除缓存时,我必须运行php bin/console cache:clear
。user
由于设置的权限,我无法以 执行此操作。如果我使用 更改所有权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
在返回的组列表中。
如果不是,则按以下方式添加user
到www-data
组中:
sudo usermod -a -G www-data USER
并再次验证。