Symfony2 缓存权限问题 ubuntu 12.10

Symfony2 缓存权限问题 ubuntu 12.10

我已经在 /opt/lampp 中安装了 lampp 1.8.1。一切运行正常。

我将当前用户添加为 htdocs 文件夹的所有者,以便我可以写入 htdocs 文件夹。

然后我创建了我的 symfony2 项目。一切运行正常,我能够正确运行配置页面。

但是当我使用命令清除缓存时

sudo php app/console cache:clear --env=prod
sudo php app/console cache:clear --env=dev

缓存已被清除,但存在权限问题。当我尝试访问与之前相同的配置页面时,浏览器中出现错误:

“RuntimeException:无法写入缓存文件“/opt/lampp/htdocs/Symfony/app/cache/dev/classes.php”。”

但是当我再次使用以下命令更改缓存文件夹的权限时:

sudo chmod -R 777 app/cache

页面再次正确显示

我不想每次清除缓存后都更改权限。有解决方案吗,还是我做错了什么?

答案1

请参阅“设置权限”http://symfony.com/doc/current/book/installation.html#configuration-and-setup。我在 Ubuntu 中首选的方式是 setfacl,它有效(第一次使用时只需要安装一个包):

sudo setfacl -R -m u:www-data:rwX -m u:`whoami`:rwX app/cache app/logs
sudo setfacl -dR -m u:www-data:rwx -m u:`whoami`:rwx app/cache app/logs

答案2

使用 symfony3

sudo setfacl -R -m u:www-data:rwX -m u:`whoami`:rwX var/cache var/logs
sudo setfacl -dR -m u:www-data:rwx -m u:`whoami`:rwx var/cache var/logs

对我有用。

答案3

如果用户没有root权限正确是

su root 
export user="changeToYouUsername"

setfacl -R -m u:www-data:rwX -m u:$user:rwX var/cache var/log
setfacl -dR -m u:www-data:rwx -m u:$user:rwx var/cache var/log

这个例子

sudo setfacl -R -m u:www-data:rwX -m u:`whoami`:rwX app/cache app/logs

仅当当前用户具有 root 权限并且这是网络日志用户时才有效(如果我们从 root 帐户执行此操作 - 权限失败 - 它使用 $whoami 作为用户名

这是 symfony 4 的 sudo 用户

sudo setfacl -R -m u:www-data:rwX -m u:`whoami`:rwX var/cache var/log;
sudo setfacl -dR -m u:www-data:rwx -m u:`whoami`:rwx var/cache var/log;

相关内容