web-dev-qa-db-fra.com

Problème d'effacement du cache Symfony 2

Mon site Web Symfony 2 m'a récemment causé des problèmes lorsque j'essaie de vider le cache. Je tape la commande suivante dans le terminal:

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

Et obtenez l'erreur suivante:

[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  

Je modifie donc les autorisations sur ce fichier en 777 et relance la commande clear cache, qui me donne cette erreur:

  [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  

Je peux contourner le problème en supprimant le dossier 'dev_old', mais je souhaite résoudre le problème à l'origine du problème.

P.S - Je sais que le site fonctionne en mode dev. Le site est en ligne depuis 10 mois et cela n’a jamais été un problème auparavant.

Toute aide est appréciée!

12
richelliot

Vous devez obtenir vos droits d’accès sur les dossiers de cache et de journaux. Pour ce faire, vous pouvez suivre les indications données ici: http://symfony.com/doc/current/book/installation.html#configuration-and-setup

Il existe plusieurs manières, selon votre système d'exploitation (remplacez www-data par votre utilisateur Apache):

Si cela supporte 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

Sinon, s'il prend en charge setfacl (voir 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

Sinon, mettez ces lignes au début de app/console, web/app.php et web/app_dev.php (non recommandé):

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

// or

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

dans Symfony3 dossiers avec cache déplacés de app à var, la commande sera donc:

$ 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
Stan Fad