executando setfacl em um diretório compartilhado vagrant

10

Tentando instalar e executar um projeto Symfony2 com uma VM vagante. Eu já vi um zilhão de artigos sobre isso, mas a permissão correta do diretório de cache está provando ser dolorosamente dolorosa.

No meu Vagrantfile:

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

fstabArquivo 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:

Operação não suportada

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 da?

Josh Nankin
fonte
Isso não resolve o problema real, mas executado este trabalho em torno de agora: stackoverflow.com/questions/7357120/...
Josh Nankin

Respostas:

6

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

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

jfcartier
fonte
3

Uma solução melhor é usar a substituição de atributo. Veja Wiki Opscode .

Por exemplo, em uma definição de funções:

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

Eu tive o mesmo problema com o Typo3 em uma pasta compartilhada, falhando ao criar arquivos temporários.

Martin Lauer
fonte