Symfony2-Cache-Berechtigungen geben Ubuntu 12.10 aus

7

Ich habe Lampp 1.8.1 in /opt/lampp installiert. Alles funktioniert gut.

Ich habe meinen aktuellen Benutzer als Eigentümer zum Ordner "htdocs" hinzugefügt, damit ich in den Ordner "htdocs" schreiben kann.

dann habe ich mein symfony2 projekt erstellt. Alles hat gut funktioniert und ich konnte die Konfigurationsseite richtig ausführen.

aber als ich den Cache mit Befehl geleert habe

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

Der Cache wird geleert, aber dann gibt es ein Berechtigungsproblem. Wenn ich versuche, auf dieselbe Konfigurationsseite wie zuvor zuzugreifen, wird im Browser ein Fehler angezeigt:

"RuntimeException: Fehler beim Schreiben der Cache-Datei" /opt/lampp/htdocs/Symfony/app/cache/dev/classes.php "."

aber dann, wenn ich die Berechtigungen des Cache-Ordners wieder ändere, indem ich:

sudo chmod -R 777 app/cache

Die Seite wird wieder richtig angezeigt

Ich möchte die Berechtigungen nicht jedes Mal ändern, nachdem ich den Cache geleert habe. Gibt es eine Lösung oder mache ich etwas falsch?

Ankit Khedekar
quelle
Was sind die App- / Cache-Berechtigungen und -Eigentümer, ls -l app/cachenachdem Sie den Cache geleert haben?
Richard Ayotte

Antworten:

15

Siehe "Einrichten von Berechtigungen" unter http://symfony.com/doc/current/book/installation.html#configuration-and-setup . Mein bevorzugter Weg in Ubuntu ist setfacl, es funktioniert (ich muss nur ein Paket zum ersten Mal installieren):

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
Garakkio
quelle
2
Tun Sie, sudo apt-get install aclwenn es keinen Befehl setfacl auf Ihrem Host gibt
userlond
0

Mit symfony3

sudo setfacl -R -m u:www-data:rwX -m u:`whoami`:rwX var/cache var/logs
sudo setfacl -dR -m u:www-data:rwx -m u:`whoami`:rwx var/cache var/logs

funktioniert bei mir.

anchan42
quelle
Ich bezweifle, dass die Befehle im konkreten Fall hilfreich sind, aber dies kann in die richtige Richtung weisen.
mook765
0

Wenn der Benutzer keine Root-Rechte hat, ist dies korrekt

su root 
export user="changeToYouUsername"

setfacl -R -m u:www-data:rwX -m u:$user:rwX var/cache var/log
setfacl -dR -m u:www-data:rwx -m u:$user:rwx var/cache var/log

dieses Beispiel

sudo setfacl -R -m u:www-data:rwX -m u:`whoami`:rwX app/cache app/logs

funktioniert nur, wenn der aktuelle Benutzer über root verfügt und dies ein Weblog-Benutzer ist (wenn wir dies über das Root-Konto tun - Berechtigungen schlagen fehl - wird $ whoami als Benutzername verwendet

Dies ist Sudo-Benutzer für Symfony 4

sudo setfacl -R -m u:www-data:rwX -m u:`whoami`:rwX var/cache var/log;
sudo setfacl -dR -m u:www-data:rwx -m u:`whoami`:rwx var/cache var/log;
Entwickler
quelle