Symfony 2缓存清除问题

时间:2013-04-04 15:06:31

标签: caching symfony cache-control

当我尝试清除缓存时,我的Symfony 2网站最近给了我一些问题。 我在终端中输入以下命令:

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

并收到以下错误:

[ErrorException]                                                                                                                                                                                                                                   
 Warning: rename(/var/www/corpsite/corpsite/app/cache/dev,/var/www/corpsite/corpsite/app/cache/dev_old): Directory not empty in /var/www/corpsite/corpsite/vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Command/CacheClearCommand.php line 74  

所以我将该文件的权限更改为777,并重新运行clear cache命令,这给了我这个错误:

  [ErrorException]                                                                                                                                                                                                                         
  Warning: unlink(/var/www/corpsite/corpsite/app/cache/dev_old/twig/6b/e9/4491e41b895786689b86f32f446f.php): Permission denied in /var/www/corpsite/corpsite/vendor/symfony/src/Symfony/Component/HttpKernel/Util/Filesystem.php line 100  

我可以通过删除'dev_old'文件夹解决问题,但我想解决导致问题的问题。

P.S - 我知道该网站正在以开发模式运行。该网站已经存在了10个月,这在以前从未出现过问题。

感谢任何帮助!

3 个答案:

答案 0 :(得分:32)

您需要获得对缓存和放大器的访问权限。记录文件夹。为此,您可以按照此处给出的指示进行操作:http://symfony.com/doc/current/book/installation.html#configuration-and-setup

有几种方法,具体取决于您的操作系统(用您的apache用户替换www-data):

如果它支持chmod + a:

$ 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

否则,如果它支持setfacl(参见https://help.ubuntu.com/community/FilePermissionsACLs):

$ 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

否则,将这些行放在app / console的开头,web / app.php& web / app_dev.php(不推荐):

umask(0002); // This will let the permissions be 0775

// or

umask(0000); // This will let the permissions be 0777

答案 1 :(得分:2)

Symfony3 文件夹中,缓存从app移至var,因此命令将为:

$ rm -rf var/cache/*
$ rm -rf var/logs/*
$ sudo chmod +a "www-data allow delete,write,append,file_inherit,directory_inherit" var/cache var/logs
$ sudo chmod +a "`whoami` allow delete,write,append,file_inherit,directory_inherit" var/cache var/logs

答案 2 :(得分:-4)

您需要获得对缓存和放大器的访问权限。记录文件夹。为此,您可以按照此处给出的指示进行操作: