Desplegar un proyecto Symfony 1.4 en hosting compartido: El problema de las direcciones relativas

Un proyecto desarrollado con Symfony, debería desplegarse en un servidor dedicado o al menos en un VPS, si el tráfico del sitio lo amerita. Un servidor dedicado o un VPS nos permite además afinar la configuración para un mejor desempeño de Symfony.

Si por el contrario, tenemos un proyecto desarrollado con Symfony que no tendrá demasiado tráfico y no requiere ajustes especiales en la configuración del servidor, podemos alojarlo en un hosting compartido. Aunque son más lentos, tiene un costo mucho menor y necesitan de menos conocimientos de configuración del servidor. Yo he desarrollado con Symfony 1.4, una extranet que tiene cierta complejidad pero escaso tráfico. La he alojado en un servidor compartido sin ningún problema de funcionamiento.

Nuestros sistemas desarrollados con Symfony 1.4 y alojados en nuestro localhost, tienen como carpeta pública predeterminada a una de nombre “web”. Cuando vamos a desplegar un proyecto desarrollado con Symfony 1.4 en un hosting compartido, nos encontraremos con una carpeta pública predeterminada con un nombre que puede ser distinto al asignado por Symfony, por ejemplo “public_html”. Cambiar el nombre de la carpeta pública en Symfony no es problema, ya que todo el sistema de Symfony se desarrolla con direcciones relativas. Ver figura siguiente.

localhost1

Figura 1: Organización de las carpetas de un proyecto con Symfony 1.4, donde se cambia el nombre de la carpeta pública

A mi juicio, otra cuestión importante, para facilitar el mantenimiento del sistema, es crear una carpeta propia, por encima de la carpeta pública, donde alojemos a todo el sistema de carpetas de Symfony 1.4, que no son públicas. Evitamos así que se mezclen con las demás carpetas propias del servidor.  Nuestras actualizaciones del sistema serán más sencillas y prolijas de esta manera. Ver la Figura 2. Allí se destacan, recuadradas en rojo, dos carpetas. La carpeta “public_html” es la carpeta pública del servidor y equivale a la carpeta original de Symfony llamada “web”. La otra carpeta que se recuadra en la Figura 2, es  “portaldeconflictos”. En esta carpeta pondré todo el sistema desarrollado con Symfony (ver Figura 4). En la figura 4, puede verse también la carpeta “public_html” que después debo mover a su lugar correcto. También he creado por mi cuenta una carpeta llamada “backup_portal” cuyo uso ahora no es necesario explicar. Todas las demas carpetas y archivos que se ven en la Figura 2, son propios del servidor remoto y es conveniente no tocarlos. En la Figura 3, se puede ver la misma estructura, capturada desde el Panel de Control del servidor remoto.

hosting remoto

Figura 2: Organización de carpetas del servidor remoto

hosting remoto3

Figura 3: Vista desde el  Panel de Control. Organización de carpetas del servidor remoto

hosting remoto7

Figura 4: Vista del contendio de la carpeta “portaldeconflictos” con todo el sistema Symfony

Cuando tenemos esta estructura de carpetas, surge un problema: debemos cambiar algunas direcciones del sistema Symfony 1.4, para que este siga funcionando, ya que hemos alterado la estructura relativa de carpetas de Symfony 1.4 en el servidor remoto. Hay tres archivos críticos para considerar, que deben ser modificados para que Symfony se pueda adaptar a la nueva estructura y seguir funcionando sin problemas. Esos archivos son:

  • fronted_dev.php (alojado en la carpeta  “public_html”)
  • index.php (alojado en la carpeta  “public_html”)
  • ProjectConfiguration.class.php (alojado en la carpeta  “config”)

Los cambios que hay que realizar en cada uno de estos archivos, se muestran en las imágenes siguientes. En todos los casos se trata de transformar direcciones relativas en absolutas.

hosting remoto4

hosting remoto5

hosting remoto6

Los comentamos brevemente. En las tres imágenes anteriores, correspondientes a los tres archivos del sistema que debemos modificar, al cambiar la estructura de carpetas del sistema Symfony 1.4, se ha recuadrado en rojo la línea que debe ser modificada, donde cambiamos las direcciones relativas de Symfony 1.4, por direcciones absolutas. Como en nuestro servidor remoto, el directorio raíz es “/home/portalde/” escribimos como dirección absoluta a modificar en los  archivos  “frontend_dev.php” e “index.php” (ver figuras de arriba):

require_once(‘/home/portalde/portaldeconflictos/config/ProjectConfiguration.class.php’);

En el archivo “ProjectConfiguration.class.php” cambiamos la línea correspondiente a:

require_once ‘/home/portalde/portaldeconflictos/lib/vendor/symfony/lib/autoload/sfCoreAutoload.class.php’;

En las imagenes de los tres archivos,  se ven unos recuadros verdes, que corresponden a líneas que deben cambiarse también, cuando desplegamos un proyecto desarrollado con Symfony 1.4.

Y esto todo, solo basta probar que el sistema funciona adecuadamente.

5 comentarios en “Desplegar un proyecto Symfony 1.4 en hosting compartido: El problema de las direcciones relativas

  1. Excelente, me sirvió para migrar de una vps a un hosting compartido.
    Yo no desarrollé la página y logré levantar el home pero no funcionan los links del menú, imagino que será por lo mismo de las direcciones relativas, tenés idea donde lo puedo buscar?
    Muchas gracias!

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