Fehler beim Schreiben der Cache-Datei „/var/www/myapp/app/cache/dev/classes.php“ beim Löschen des Caches

Lesezeit: 3 Minuten

Benutzer-Avatar
Omega

Ich habe Symfony 2.0.7 auf Ubuntu 11.10 installiert. Ich habe dieses Problem:

Ich habe die Berechtigungen der geändert cache e logs Verzeichnisse mit den folgenden Befehlen:

chmod 777 -R cache
chmod 777 -R logs

und alle Funktionen, wie ich erwartet hatte.

Dann habe ich gemacht:

app/console cache:clear

Löschen des Caches für die Entwicklungsumgebung mit debug true

Berechtigungen von cache/dev ändern sich auf 755 und Symfony kann darin nicht schreiben:

RuntimeException: Fehler beim Schreiben der Cache-Datei “/var/www/myapp/app/cache/dev/classes.php”.

in /var/www/myapp/app/bootstrap.php.cache Zeile 1079 bei ClassCollectionLoader::writeCacheFile() in /var/www/myapp/app/bootstrap.php.cache Zeile 1017 bei ClassCollectionLoader::load() in / var/www/myapp/app/bootstrap.php.cache Zeile 682 bei Kernel->loadClassCache() in /var/www/myapp/web/app_dev.php Zeile 23

Wie kann ich diesen offensichtlichen Fehler in Symfony 2 lösen?

  • Ich habe dieses Problem vermieden, indem ich hinzugefügt habe --no-warmup beim leeren des cache so das dev Der Ordner wird nicht vom CLI-Benutzer erstellt. Wenn Sie dann zum ersten Mal eine Seite in Ihrem Browser anfordern, wird die dev Ordner wird von erstellt www-data Benutzer. Ich beendete die Verwendung der Lösung, die unten von Federico Gallo gepostet wurde.

    – VMC

    18. Februar 2015 um 8:43 Uhr


Benutzer-Avatar
Elnur Abdurrakhimov

Siehe die Berechtigungen einrichten Nebenbemerkung in der Konfiguration und Einrichtung Sektion. Verwenden Sie den ACL-Ansatz mit setfacl.

z.B

sudo setfacl -R -m u:apache:rwX -m u:`whoami`:rwX app/cache app/logs
sudo setfacl -dR -m u:apache:rwX -m u:`whoami`:rwX app/cache app/logs

(wo apache ist Ihr HTTPD-Benutzer)

  • wenn ich tippe setfacl es sagt command not found wie kann ich es loswerden

    – Jagen

    15. April 2013 um 10:07 Uhr

  • @Hunt, installiere die acl Paket.

    – Elnur Abdurrakhimov

    15. April 2013 um 10:30 Uhr

  • bei mir heißt es: setfacl: Option -m: Ungültiges Argument in der Nähe von Zeichen 3

    – Sarang

    9. Oktober 2015 um 7:20 Uhr

Benutzer-Avatar
Karmavil

Nun, ich benutze setfacl um diese Probleme zu vermeiden, aber ich habe immer noch Probleme.
Ich arbeite an einem Standardbenutzerverzeichnis also das geht bei mir nicht:

APACHEUSER=`ps aux | grep -E '[a]pache|[h]ttpd' | grep -v root | head -1 | cut -d\  -f1`
sudo setfacl -R -m u:$APACHEUSER:rwX -m u:`whoami`:rwX app/cache app/logs
sudo setfacl -dR -m u:$APACHEUSER:rwX -m u:`whoami`:rwX app/cache app/logs

Wenn Sie dies auch tun: (wenn nötig natürlich als privilegierter Benutzer)

sudo rm -rf app/cache app/logs

Erstellen Sie dann als NORMAL-Benutzer beide Verzeichnisse und wenden Sie dann die folgenden Befehle auch als NORMAL-Benutzer an (ohne sudo):

exit (from root if necessary)
mkdir app/cache app/logs

APACHEUSER=`ps aux | grep -E '[a]pache|[h]ttpd' | grep -v root | head -1 | cut -d\  -f1`
setfacl -R -m u:$APACHEUSER:rwX -m u:`whoami`:rwX app/cache app/logs
setfacl -dR -m u:$APACHEUSER:rwX -m u:`whoami`:rwX app/cache app/logs

Hinweis: Denken Sie daran, dass dazwischen zwei Leerzeichen stehen -d\ und -f1

Viel Glück!

  • Anstatt von exit Du solltest rennen sudo -k sudo-Privilegien verlassen. exit schließt auch die Konsole.

    – VMC

    12. Mai 2015 um 13:25 Uhr

  • Vielen Dank für Ihren Beitrag. Der Benutzer, von dem ich spreche, ist ein Standardbenutzer. Es wird also nicht zu den Sudoers hinzugefügt. Deshalb habe ich su und exit gemacht

    – Karmavil

    13. Mai 2015 um 15:57 Uhr

In meinem Fall mache ich nur als Root-Benutzer:

sudo -u apache app/console ca:cl

Apache – dies variiert je nach Besitzer Ihres Webverzeichnisses. standardmäßig auf Apache, vorausgesetzt, Sie verwenden Apache für Ihren Webserver.

Durch das Betrachten Ihrer Beiträge bin ich auf diese Seite gelangt

http://symfony.com/doc/current/setup/file_permissions.html

Dann habe ich das gemacht:

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 setfacl -R -mu:”$HTTPDUSER”:rwX -mu:whoami:rwX var

sudo setfacl -dR -mu:”$HTTPDUSER”:rwX -mu:whoami:rwX var

Und es hat mein Problem gelöst

1175560cookie-checkFehler beim Schreiben der Cache-Datei „/var/www/myapp/app/cache/dev/classes.php“ beim Löschen des Caches

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy