executando setfacl em um diretório compartilhado vagante

10

Tentando colocar um projeto do Symfony2 em funcionamento com uma VM vagante. Eu vi um zilhão de artigos sobre isso, mas obter o diretório de cache com permissão corretamente está provando ser dolorosamente doloroso.

No meu Vagrantfile :

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

O arquivo fstab da minha 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

O pacote acl foi instalado na VM.

Quando executo o seguinte em / var / www de acordo com as instruções de instalação do Symfony2:

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

Eu recebo:

Operation not supported

Eu posso executar o comando em qualquer outro diretório ou arquivo no FS (fora do diretório compartilhado) e o comando funciona. O que dá?

    
por Josh Nankin 27.04.2012 / 18:45

2 respostas

6

Para contornar todos os problemas de permissão com o Symfony2 e o Vagrant, a solução mais fácil é mudar o usuário e o grupo que está executando o apache para o vagrant. Para isso, edite o arquivo / etc / apache2 / envvars e substitua as linhas 16 e 17 por estas: export APACHE_RUN_USER = vagabundo export APACHE_RUN_GROUP = vagabundo Note que estas instruções são para o apache 2.2 no Ubuntu, consulte o seu apache e a versão do SO para fazer isso.

Se você não quiser alterar o usuário e grupo do apache, você também pode montar um ramdisk e colocar seu projeto symfony nele. Então vagrant pode modificar as permissões neste disco. Veja este link para instruções sobre como montar um ramdisk.

    
por 14.09.2012 / 05:37
3

Uma solução melhor é usar a sobreposição de atributos. Veja Opscode Wiki .

Por exemplo, em uma definição de papéis:

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

Eu tive o mesmo problema com o Typo3 em uma pasta compartilhada, não conseguindo criar arquivos temporários.

    
por 26.10.2012 / 09:40