Symfony - RuntimeException:无法写入缓存文件

时间:2012-08-30 06:02:39

标签: macos symfony xampp

我无法正确获取权限。我试图通过XAMPP在Mac上的本地环境中运行它。

我尝试了以下内容:

4 个答案:

答案 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/cachechmod -R 777 app/logs

答案 2 :(得分:1)

请参阅Configuration and Setup部分中的设置权限旁注。将ACL方法与setfacl一起使用。

答案 3 :(得分:-1)

我收到了这个错误,我尝试了所有这些提示但没有成功......

我最终通过停用seLinux找到解决方案。为此,编辑文件“/ etc / selinux / config”并用

替换SELINUX值
SELINUX=disabled