Dir*_*ber 4 file-permissions symfony symfony4
我正在设置一个新服务器并安装了Ubuntu 18.04和Apache2。我的项目存储在/var/www/project. 在apache2.conf我添加
<Directory /var/www/project/>
AllowOverride All
Order Allow,Deny
Allow from All
</Directory>
Run Code Online (Sandbox Code Playgroud)
在我的虚拟主机文件中,我指向/var/www/project/public
当我转到服务器的 IP 地址时,我看到了我的项目并且一切正常,除了一件事:
每当我使用php bin/console cache:clear我的目录权限清除缓存时,都会var搞砸,这会导致生产环境中出现错误。
我可以解决这个问题:
chmod -R 777 var/
Run Code Online (Sandbox Code Playgroud)
但是即使我再次清除缓存,问题也会再次出现。我尝试了不同的用户,包括root,但总是同样的问题。我不明白是什么原因造成的。在文件权限的文档中,它说:
在 Symfony 中
3.x,你需要做一些额外的工作来确保你的缓存目录是可写的。但这不再是事实!在 Symfony 中4,一切都会自动运行
那么不适合我,但是什么可能导致问题?
缓存目录归执行cache:clear命令的用户所有。
www-data.www-data 无法写入缓存目录使用拥有文件的用户执行缓存:清除。
su www-data -s /bin/bash./bin/console cache:clear根据您的设置,您的
www-data用户可能会有所不同