wake-up-neo.net

RuntimeException: Das Cache-Verzeichnis kann nicht erstellt werden (/ var/www/sonata/app/cache/dev)

ich habe das Sonaten-Admin-Bundle installiert 

rm -rf app/cache app/log

zum Entfernen des Cache. Dann erstelle ich den Director mit dem Befehl 

mkdir app/cache app/log

dann bekam ich das neue problem so 

Runtime Exception : Unable to create the cache directory (/var/www/sonata/app/cache/dev). Please help .
26
user2779489

Es sieht aus wie ein Problem mit Datei-/Verzeichnisberechtigungen. Das Verzeichnis muss vom Webserver beschreibbar sein. Nach dem Erstellen des Verzeichnisses sollten Sie die Berechtigungen mit anpassen 

$ chown -R www-data:www-data app/cache

und 

$ chown -R www-data:www-data app/log

in der Befehlszeile.

Dies funktioniert nur auf Linux-Systemen. Der Benutzer und die Gruppe hängen von Ihrer Verteilung ab. Unter Debian und Ubuntu sollten dies WWW-Daten sein, unter CentOS Afaik Apache.

Eine andere Lösung wäre, nicht die ganzen Ordner zu löschen, sondern nur deren Inhalt über

$ rm -rf app/log/* app/cache/*

Aber seien Sie vorsichtig mit diesem Befehl.

46
l-x

Diese Lösung ist korrekt: https://stackoverflow.com/a/20128013/2400373

Es ist jedoch notwendig, die 2 Befehle in Symfony3: .__ zu ändern. Zuerst sollten Sie sich im Ordner des Projekts befinden:

$ Sudo chown -R www-data:www-data var/cache
$ Sudo chown -R www-data:www-data var/logs

Nach dem Löschen des Caches:

$ Sudo rm -rf var/cache/*
$ Sudo rm -rf var/logs/* 

Grüße

5
juanitourquiza

Und für Centos:

chown -R Apache:apache app/cache

wenn Sie zur Symfony-Hilfe kommen, müssen Sie dies möglicherweise auch tun, wenn Sie den gesamten Ordner app/logs löschen

chown -R Apache:apache app/logs
4
sjt003

Ich habe das Problem gelöst, Benutzer und Gruppe von Ordnern var/cache und var/logs zu ändern.

Sudo chown -R www-data:www-data var/logs
Sudo chown -R www-data:www-data var/cache

Sudo rm -rf var/logs/* var/cache/*
3
Jirson Tavera

Das Ändern des CHMODs kann hilfreich sein, aber falls der Cache Sie während der Entwicklung stört, können Sie ihn einfach deaktivieren. Blättern Sie zu den Zweigkonfigurationseinstellungen (unter Zweig :) und ändern Sie den Cache-Wert (der auf das Cache-Verzeichnis zeigen sollte) in false wie folgt:

twig:
    cache:  false

Wenn Sie keinen Cache-Konfigurationseintrag sehen, fügen Sie einfach die Zeile oben hinzu.

2
user254883

Ich habe ein ähnliches Problem gefunden, als ich das Symfony PHP als Fehlerbild verwendet habe

php bin/console cache:clear

Ich habe es gelöst, indem ich alles aus dem Ordner / app/var/cache entfernt habe.

 enter image description here

Es ist meistens die Erlaubnisfrage.

Ich habe es auf MAC mit folgendem Befehl aufgelöst: $ Sudo chmod -R 777 <path/to/cache/directory>

Sie könnten versuchen: $ Sudo chmod -R 777 /var/www/sonata/app/cache

0
Pratik Patel

Auf einem mac Computer wird es sein:

$ Sudo chown -R _www:_www var/cache
$ Sudo chown -R _www:_www var/logs

Wenn keins der oben genannten Punkte für Sie funktioniert , rufen Sie ein "phpinfo ()" in Ihrer PHP-Datei auf und suchen Sie nach "User/Group". Das ist die Benutzergruppe, der die Erlaubnis erteilt werden soll.

0
Tiago Gouvêa

Es ist wahrscheinlich, dass Sie versuchen, die Datei unter Apache/nginx zu erstellen. Standardmäßig hat Apache oder Nginx Umask auf 0022 gesetzt. 

Von: http://www.cyberciti.biz/tips/understanding-linux-unix-umask-value-usage.html

Erläutern Sie den oktalen Umask-Modus 022 und 002

Wie bereits erwähnt, werden die Dateien mit dem Zugriffsmodus 666 und den Verzeichnissen mit 777 erstellt, wenn die Standardeinstellungen nicht geändert werden. In diesem Beispiel:

Die Standardeinstellung umask 002 für normale Benutzer. Mit dieser Maske sind die Standardverzeichnisberechtigungen 775 und die Standarddateiberechtigungen 664 . Die Standard-Umask für den Root-Benutzer ist 022. Die Standardverzeichnisberechtigungen sind 755 und die Standarddateiberechtigungen sind 644 . Für Verzeichnisse lauten die Basisberechtigungen (rwxrwxrwx) 0777 und für Dateien sind sie 0666 (rw-rw-rw).

Sie müssen den umask manuell auf 0002 setzen und ihn auf seine vorherige Einstellung zurücksetzen, bevor Sie die Verzeichnisse erstellen können.

0
dminer

Überprüfen Sie auch den Pfad. In meinem Fall hatte ich

return dirname(__DIR__) . '../../../../var/cache/

anstatt von

return dirname(__DIR__) . '/../../../../var/cache/ (fehlende /)

0
simPod