Symfony2 en un hosting compartido

O dicho de otra forma, "cómo acabar de los nervios en poco tiempo y sin quererlo". Uno de los últimos proyectos que he afrontado tenía como principal petición que fuera desarrollado en PHP, no por nada en concreto sino por el tipo de hosting, un compartido de esos de 2€/mes en el que te dan PHP, MySQL y una palmadita en la espalda.

Cuando planteé el presupuesto tenía claro que o lo hacía en Symfony - como digo, Django no era opción - o mejor dedicar el tiempo a otra cosa, así que me puse al lío dejando "el problema del hosting" para cuando tocara resolverlo, sin darle mayor importancia.

Una vez desarrollado y funcionando en una plataforma de staging tirando de mis propios recursos, llegó el momento de dar se salgo al abismo de los compartidos.

El primer escalón que había que subir era la imposibilidad de crear nuevas carpetas, tenía que arreglarme con las carpetas existentes (cgi-bin/, data/, errors/, html/ y logs/). Y por otro lado, el DocumentRoot del dominio está apuntando a  html/. Menudo panorama.

Tenía claro que el único directorio de contenido público del proyecto (web/) tenía que subirlo a html/, así que, una vez generados assets, assetic, js-routing, instalados los vendors y actualizadas las dependencias de Bower, di buena cuenta del Filezilla subiendo la carpeta pública. Primer paso: web/ -> html/.

El segundo paso era buscar una ubicación para el framework y sus vendors, data/ parecía un buen destino así que allá se fue, todo el resto del proyecto a data/sf2/. Siguiente paso: (app/ bin/ doc/ src/ bower.json, composer.json...) -> data/sf2/.

Por último toca decirle al despachador de nuestra aplicación (app.php o app_dev.php, dependiendo del entorno) que vaya a buscar todo a donde corresponde, su nueva ubicación:

$loader = require_once __DIR__.'/../data/sf2/app/bootstrap.php.cache';
require_once __DIR__.'/../data/sf2/app/AppKernel.php';

Y debería estar todo listo. Digo debería porque en mi caso tuve que abrir dos tickets, uno para actualizar PHP a una versión superior a 5.3 y otro para actualizar de MySQL4 a MySQL5 (ambos publicitados por la empresa del hosting en el plan contratado, pero parece ser que por defecto no los activan a no ser que lo pidas expresamente).

Nota: Recomiendo leer el documento oficial de Symfony sobre cómo cambiar la esrtuctura de ficheros porque a lo mejor en otro caso se quiere cambiar la ubicación de los directorios cache/ o logs/, el directorio de actuación de assetic, etc.

About the author

Óscar
has doubledaddy super powers, father of Hugo and Nico, husband of Marta, *nix user, Djangonaut and open source passionate.
blog comments powered by Disqus