eseguendo setfacl su una directory condivisa vagabonda


10

Tentativo di avviare e far funzionare un progetto Symfony2 con una macchina virtuale vagante. Ho visto un miliardo di articoli su questo, ma ottenere correttamente la directory della cache è estremamente doloroso.

Nel mio Vagrantfile:

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

Il fstabfile della mia macchina virtuale :

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

Il pacchetto acl è stato installato sulla VM.

Quando eseguo quanto segue in / var / www secondo le istruzioni di installazione di Symfony2:

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

Ottengo:

Operazione non supportata

Posso eseguire il comando su qualsiasi altra directory o file sull'FS (al di fuori della directory condivisa) e il comando funziona. Cosa dà?


Questo non ha risolto il problema reale, ma per ora ha eseguito questo lavoro: stackoverflow.com/questions/7357120/…
Josh Nankin

Risposte:


6

Per aggirare tutti i problemi di autorizzazione con Symfony2 e Vagrant, la soluzione più semplice è cambiare l'utente e il gruppo che esegue apache in vagrant. Per fare ciò, modifica il file / etc / apache2 / envvars e sostituisci le righe 16 e 17 con queste: export APACHE_RUN_USER = vagrant export APACHE_RUN_GROUP = vagrant Nota che queste istruzioni sono per apache 2.2 su Ubuntu, fai riferimento alla tua versione di apache e OS da fare così.

Se non vuoi cambiare utente e gruppo di apache, puoi anche montare un ramdisk e mettere il tuo progetto symfony su di esso. Quindi vagrant può modificare le autorizzazioni su questo disco. Vedi questo link per istruzioni su come montare un ramdisk.


3

Una soluzione migliore sta usando la sostituzione degli attributi. Vedi Opscode Wiki .

Ad esempio in una definizione di ruoli:

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

Ho avuto lo stesso problema con Typo3 in una cartella condivisa, non riuscendo a creare file temporanei.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.