我无法正确获取权限。我试图通过XAMPP在Mac上的本地环境中运行它。
我尝试了以下内容:
php app/console cache:clear
答案 0 :(得分:24)
rm -rf app/cache/*
rm -rf app/logs/*
sudo chmod +a "www-data allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs
sudo chmod +a "`whoami` allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs
确保将www-data用户替换为您的Web服务器运行的用户。通过运行命令找出您的Web服务器运行的用户:
ps aux | grep http
或者
ps aux | grep apache
您可能还需要启用ACL。有关详细信息,请参阅Installation docs,有关ACL的信息,请参阅this page。
从命令行运行Symfony时,缓存的文件/目录由您登录的用户创建,在您的情况下为“jess”。在浏览器中运行网页时,它们是由Web服务器用户创建的 - 在您的情况下,用户“nobody”。您的用户无权修改Web服务器创建的文件和目录,反之亦然。
将您的网络服务器更改为与登录用户相同的用户并不是理想的解决方案,因为它不是一个非常安全的选项,当您将网站放在另一台服务器上时,您仍会遇到同样的问题。
解决方案是确保您已遵循http://symfony.com/doc/current/book/installation.html处安装文档的“设置权限”部分。
确保你rm -rf文件夹的内容,而不仅仅是php app / console cache:clear,因为symfony clear cache命令将创建目录/文件,这些目录/文件仍然不能被你的网络服务器写入。
答案 1 :(得分:6)
通常,您应该从与php5-cli相同的用户运行您的网络服务器。您项目所在的文件夹应具有该用户的所有权限。
您应change user for project directory
或仅chmod -R 777 app/cache
和chmod -R 777 app/logs
答案 2 :(得分:1)
请参阅Configuration and Setup部分中的设置权限旁注。将ACL方法与setfacl
一起使用。
答案 3 :(得分:-1)
我收到了这个错误,我尝试了所有这些提示但没有成功......
我最终通过停用seLinux找到解决方案。为此,编辑文件“/ etc / selinux / config”并用
替换SELINUX值SELINUX=disabled