it-swarm.com.de

Symfony 2-Cache-Löschproblem

Meine Symfony 2-Website hat mir kürzlich Probleme gemacht, wenn ich versuche, den Cache zu löschen. Ich gebe den folgenden Befehl in das Terminal ein:

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

Und erhalte den folgenden Fehler:

[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  

Also ändere ich die Berechtigungen für diese Datei in 777 und führe den Befehl clear cache erneut aus. Daraufhin wird der Fehler angezeigt:

  [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  

Ich kann das Problem umgehen, indem ich den Ordner 'dev_old' lösche, aber ich möchte das Problem lösen, das das Problem verursacht.

P.S - Ich weiß, dass die Site im Dev-Modus läuft. Die Website ist seit 10 Monaten live und dies war noch nie ein Thema.

Jede Hilfe wird geschätzt!

12
richelliot

Sie müssen Ihre Zugriffsrechte für Cache- und Protokollordner erhalten. Um dies zu tun, können Sie die hier angegebenen Hinweise befolgen: http://symfony.com/doc/current/book/installation.html#configuration-and-setup

Abhängig von Ihrem Betriebssystem gibt es mehrere Möglichkeiten (ersetzen Sie www-data durch Ihren Apache-Benutzer):

Wenn es chmod + a unterstützt:

$ 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

Ansonsten, wenn setfacl unterstützt wird (siehe 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

Ansonsten setzen Sie diese Zeilen am Anfang von app/console, web/app.php und web/app_dev.php (nicht empfohlen):

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

// or

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

in Symfony3 Ordnern mit Cache wurde von app nach var verschoben, der Befehl lautet also:

$ 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