每次缓存清除后必须修复 var 文件夹权限,Symfony 4

Must fix var folder permission after each cache clear , Symfony 4

我正在使用 Symfony 4,我的网站托管在 ubuntu 18.04 服务器上。

问题是我每次清除缓存时都必须 运行 chmod 777 -R var/ .

是否有永久修复权限的命令?

这很可能是因为您的网络服务器的用户需要在此目录中写入。您可以做几件事。首先,您可以以您的网络服务器用户身份清除缓存(很像 www-data,但这取​​决于您的服务器软件以及您是否进行了任何更改):

sudo -u www-data php bin/console cache:clear

第二个选项(我更喜欢这个)是使用 'access control lists' 为您的 CLI 用户和您的 Web 服务器用户提供访问权限。首先,通过 运行ning sudo apt-get install acl 安装 ACL。然后运行以下(source):

 HTTPDUSER=$(ps axo user,comm | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\  -f1)
 sudo setfacl -dR -m u:"$HTTPDUSER":rwX -m u:$(whoami):rwX var
 sudo setfacl -R -m u:"$HTTPDUSER":rwX -m u:$(whoami):rwX var

在此之后,您可以使用常规 CLI 用户清除缓存。