Intentando poner en marcha un proyecto de Symfony2 con una VM vagabunda. He visto millones de artículos sobre esto, pero obtener el permiso del directorio de caché correctamente está resultando insoportablemente doloroso.
En mi Vagrantfile
:
config.vm.share_folder("src", "/var/www", "../www")
El fstab
archivo de mi 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
El paquete acl se ha instalado en la VM.
Cuando ejecuto lo siguiente en / var / www según las instrucciones de instalación de Symfony2:
sudo setfacl -R -m u:apache:rwx -m u:username:rwx app/cache app/logs
Yo obtengo:
Operación no admitida
Puedo ejecutar el comando en cualquier otro directorio o archivo en el FS (fuera del directorio compartido) y el comando funciona. ¿Lo que da?
virtualbox
vagrant
symfony
Josh Nankin
fuente
fuente
Respuestas:
Para evitar todos los problemas de permisos con Symfony2 y Vagrant, la solución más fácil es cambiar el usuario y el grupo que ejecuta apache a vagabundo. Para hacerlo, edite el archivo / etc / apache2 / envvars y reemplace las líneas 16 y 17 con estas: export APACHE_RUN_USER = vagrant export APACHE_RUN_GROUP = vagrant Tenga en cuenta que estas instrucciones son para apache 2.2 en Ubuntu, consulte su versión de apache y OS para hacerlo entonces.
Si no desea cambiar el usuario y el grupo de Apache, también puede montar un ramdisk y poner su proyecto de Symfony en él. Entonces vagabundo puede modificar los permisos en este disco. Consulte este enlace para obtener instrucciones sobre cómo montar un disco RAM.
fuente
Una mejor solución es utilizar la anulación de atributos. Ver Opscode Wiki .
Por ejemplo, en una definición de roles:
Tuve el mismo problema con Typo3 en una carpeta compartida, al no poder crear archivos temporales.
fuente