Berriart Berriart

Desarrollo web con software libre

Symfony2, permisos en el directorio cache (y en logs)

Guardar este artículo en Delicious Compartir este artículo en Twitter Compartir este artículo en Facebook

Supongo que habréis sido más espabilados que yo, pero si alguno de vosotros también se ha peleado con los permisos del directorio app/cache, aquí tenéis la solución. Mi problema era que en la instalación de Symfony2 siempre le daba permisos 777 a los directorios app/cache y app/logs, pensaba que con eso valía.

En un principio parece que sí, se accede vía web y sin ningún problema se van generando los ficheros de caché. Pero si más adelante ibas a la línea de comandos e intentabas alguna acción que tuviera que reescribir esos ficheros (generados por usuario apache o similar) te decía que el usuario que usabas no tenía permisos. Pues nada, yo volvía a darle permisos 777 con ayuda del sudo, hacía lo que tenía que hacer y de nuevo volvía a darle permisos para que el usuario apache no tuviera problemas en sobreescribir lo que yo había generado desde consola con mi usuario. Menudo lío ¿no?

Llegado un punto en el que este loop empezaba a convertirse en infinito, busqué un poquito y descubrí que no tenía que ir muy lejos a buscar la solución, estaba escrita en la propia documentación de Symfony2. Y realmente tampoco era tan complicada si hubiera pensado un poquito, ambos usuarios deben tener permisos sobre esos directorios:

sudo rm -rf app/cache/*
sudo rm -rf app/logs/*
sudo setfacl -R -m u:www-data:rwx -m u:`whoami`:rwx app/cache app/logs
sudo setfacl -dR -m u:www-data:rwx -m u:`whoami`:rwx app/cache app/logs

Dónde www-data es el nombre del usuario de los accesos web (en algunos casos es apache, http,…) y dónde whoami es el nombre del usuario con el que accedes y ejecutas la consola de Symfony.

Deja un comentario