Fehler beim Schreiben der Cache-Datei „/var/www/myapp/app/cache/dev/classes.php“ beim Löschen des Caches
Lesezeit: 3 Minuten
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
Elnur Abdurrakhimov
Siehe die Berechtigungen einrichten Nebenbemerkung in der Konfiguration und Einrichtung Sektion. Verwenden Sie den ACL-Ansatz mit setfacl.
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
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:
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
Ich habe dieses Problem vermieden, indem ich hinzugefügt habe
--no-warmup
beim leeren des cache so dasdev
Der Ordner wird nicht vom CLI-Benutzer erstellt. Wenn Sie dann zum ersten Mal eine Seite in Ihrem Browser anfordern, wird diedev
Ordner wird von erstelltwww-data
Benutzer. Ich beendete die Verwendung der Lösung, die unten von Federico Gallo gepostet wurde.– VMC
18. Februar 2015 um 8:43 Uhr