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")
fstab
Arquivo 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?
virtualbox
vagrant
symfony
Josh Nankin
fonte
fonte
Respostas:
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.
fonte
Uma solução melhor é usar a substituição de atributo. Veja Wiki Opscode .
Por exemplo, em uma definição de funções:
Eu tive o mesmo problema com o Typo3 em uma pasta compartilhada, falhando ao criar arquivos temporários.
fonte