Escenario. Symfony2 corriendo en Ubuntu. Tras limpiar la cache salta un error que tal directorio o archivo de la cache no ha podido ser borrado. Y, al final, nos toca borrarlo a mano o fusilarle un chmod 777.
Solución. Dado que ubuntu no dispone de la opción chmod +a, hay que seguir los siguientes pasos:
1. Borramos todos los ficheros de los directorios con permiso de escritura:
1
2
$rm-rf app/cache/*
$rm-rf app/logs/*
2. Instalamos acl en ubuntu
1
$sudo apt-get install acl
3. Añadimos la opción acl en la partición donde tengamos instalado nuestro proyecto. Para ello editamos el archivo /etc/fstab, por ejemplo:
4. Si es necesario, volvemos a montar la partición:
1
$sudo mount-oremount/home
5. Verificamos que las acl están habilitadas en la partición:
1
mount|grep acl
6. Y, por último, desde el directorio root de nuestra aplicación symfony2, lanzamos estos tres comandos para determinar cuál es el usuario del servidor web y asignárselo a APACHEUSER, y, a continuación, establecer los permisos adecuados en app/cache y app/log: