无法写入缓存symfony2

时间:2015-08-30 14:08:58

标签: symfony caching nginx

RuntimeException in ClassCollectionLoader.php line 239: 

Failed to write cache file "/var/www/fareast/app/cache/dev/classes.php".

我在symfony2中运行项目时遇到此错误。 我有nginx作为我的web服务器,centOS 7作为我的操作系统。 我尝试通过

手动删除缓存文件夹
php app/console cache:clear

然后我对app / cache和app / logs

进行了不好的练习
chmod -R 777 

但我有同样的错误。 /var/log/nginx/error.log也是空的。 你推荐其他解决方案吗? 或者我是否必须为缓存安装一些php5库?

3 个答案:

答案 0 :(得分:5)

设置777权限不执行任何操作,因为当webserver用户向其写入文件夹时,文件夹属于此用户,并且您作为命令行用户无法访问它们,反之亦然。以正确的方式设置权限:http://symfony.com/doc/current/book/installation.html#book-installation-permissions

答案 1 :(得分:0)

在symfony3中,我遇到了同样的问题......

因此,问题不会只解决使用“缓存清除”

您必须更改项目中缓存文件夹的(R / W)权限

For ex: "projectname/var/cache"

现在刷新......

如果仍有问题,请更改项目中日志文件夹的(R / W)权限

For ex: "projectname/var/logs"

答案 2 :(得分:-1)

您必须使用以下脚本来确定您的Web服务器用户并授予所需的权限:

rm -rf var/cache/*
rm -rf var/logs/*
HTTPDUSER = `ps axo user,comm | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\  -f1`
sudo chmod -R +a "$HTTPDUSER allow delete,write,append,file_inherit,directory_inherit" var
sudo chmod -R +a "`whoami` allow delete,write,append,file_inherit,directory_inherit" var