Desplegar un proyecto de Symfony 2.8 en un servidor Linux: el problema de los permisos

Desplegar (deploy) un proyecto desarrollado con Symfony 2.8 requiere algunas precauciones que si no los tenemos en cuenta, nos complicarán la puesta en producción del sistema.

Supuestos:

1) Cuento con un servidor remoto VPS o dedicado. En mi caso, utilizo un VPS con CentOS Linux 7.3.1611
2) Tengo por lo tanto, acceso a todas las carpetas del sistema del servidor remoto.

Problema:

Cuando tenemos desarrollado un proyecto Symfony 2.8 y queremos subirlo a algún servidor Web remoto para ver como se comporta en modo de producción, suelen surgir una serie de problemas con los permisos en carpetas en las que Symfony debe escribir. Estas carpetas son: cache, logs y spool, que se encuentran a su vez, dentro de la carpeta app del sistema de Symfony (ver imagen).

permisos1

Carpeta app en el servidor local

Las tres carpetas deben poder ser accedidas por Symfony en forma lectura y escritura. El sitio oficial de Symfony sostiene que estas carpetas no deben ser subidas porque Symfony las creará por su cuenta. Pero el problema que surge a menudo, es que Symfony las crea sin los permisos adecuados y luego no las puede escribir haciendo que el sistema falle y aparezca la temida página en blanco.

Solución:

Mi consejo es que Usted proceda a crear estas carpetas en forma manual, la primera vez que suba el sistema al servidor remoto, y las dote de permisos de lectura y escritura, a las carpetas y a todos los archivos que se vayan a crear en ellas, accediéndolas con algún “File Manager”. El código de permisos que hay que asignarles a las carpetas cache, logs y spool es: 0777 (ver imagen de abajo). Por supuesto, debemos asegurarnos que las sub-carpetas, tengan los mismos permisos. Así cache, incluye la carpeta prod y spool incluye la carpeta default
Con esta medida, se ahorrará muchos dolores de cabeza, que no son por deficiencias de Symfony, pero que muchas veces no permiten que los sistemas desarrollados con Symfony, funcionen correctamente.

permisos2

las carpetas logs, cache y spool en el servidor remoto

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s