我已经在 /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;