Ausführen von setfacl in einem vagabundierten freigegebenen Verzeichnis


10

Der Versuch, ein Symfony2-Projekt mit einer vagabundierenden VM zum Laufen zu bringen. Ich habe zig Artikel darüber gesehen, aber das Cache-Verzeichnis richtig zuzulassen, erweist sich als unerträglich schmerzhaft.

In meinem Vagrantfile:

config.vm.share_folder("src", "/var/www", "../www")

Die fstabDatei meiner VM :

proc            /proc           proc    nodev,noexec,nosuid 0       0
/dev/mapper/ubuntu--1110-root /               ext4    acl,errors=remount-ro 0       1
# /boot was on /dev/sda1 during installation
UUID=4ed7eaaf-6f42-48ba-b5ed-f0c1df9add38 /boot           ext2    defaults        0       2
/dev/mapper/ubuntu--1110-swap_1 none            swap    sw              0       0

Das acl-Paket wurde auf der VM installiert.

Wenn ich Folgendes in / var / www gemäß den Installationsanweisungen für Symfony2 ausführe:

 sudo setfacl -R -m u:apache:rwx -m u:username:rwx app/cache app/logs

Ich bekomme:

Operation wird nicht unterstützt

Ich kann den Befehl in jedem anderen Verzeichnis oder jeder anderen Datei auf dem FS (außerhalb des freigegebenen Verzeichnisses) ausführen, und der Befehl funktioniert. Was gibt?


Dies löste das eigentliche Problem nicht, führte diese Arbeit jedoch vorerst aus
Josh Nankin

Antworten:


6

Um alle Berechtigungsprobleme mit Symfony2 und Vagrant zu umgehen, besteht die einfachste Lösung darin, den Benutzer und die Gruppe, in denen Apache ausgeführt wird, in Vagrant zu ändern. Bearbeiten Sie dazu die Datei / etc / apache2 / envvars und ersetzen Sie die Zeilen 16 und 17 durch folgende: export APACHE_RUN_USER = vagrant export APACHE_RUN_GROUP = vagrant Beachten Sie, dass diese Anweisungen für Apache 2.2 unter Ubuntu gelten. Weitere Informationen finden Sie in Ihrer Apache- und Betriebssystemversion damit.

Wenn Sie den Apache-Benutzer und die Apache-Gruppe nicht ändern möchten, können Sie auch eine Ramdisk bereitstellen und Ihr Symfony-Projekt darauf ablegen. Dann kann Vagrant die Berechtigungen auf dieser Festplatte ändern. Unter diesem Link finden Sie Anweisungen zum Mounten einer Ramdisk.


3

Eine bessere Lösung ist die Verwendung von Attributüberschreibung. Siehe Opscode Wiki .

Zum Beispiel in einer Rollendefinition:

override_attributes({
    "apache" => {
      "user" => "vagrant",
      "group" => "vagrant"
    }
})

Ich hatte das gleiche Problem mit Typo3 in einem freigegebenen Ordner und konnte keine temporären Dateien erstellen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.