Más con Symfony

11.5. Instalación y uso del sandbox de Symfony

El siguiente párrafo está extraído de la guía de inicio rápido de Symfony: "El sandbox es un proyecto Symfony muy sencillo de instalar y preparado con las opciones de configuración más habituales. Se trata de la mejor forma de probar Symfony sin tener que realizar una instalación correcta que se adecue a las mejores prácticas en el mundo web".

El sandbox está configurado para utilizar SQLite como base de datos. En Windows no es necesario instalar nada para que funcione, ya que el soporte de SQLite lo proporciona la extensión PDO de PHP que se instaló durante la instalación de PHP. Por tanto, este requisito ya se cubrió al instalar las librerías de PHP mediante el Microsoft Web PI.

Simplemente comprueba que la extensión SQLite está correctamente referenciada en el archivo de configuración PHP.INI que se encuentra en el directorio C:\Program Files (x86)\PHP. Además, comprueba que la DLL que implementa el soporte PDO de SQLite sea C:\Program Files (x86)\PHP\ext\php_pdo_sqlite.dll.

PHP - Localización del archivo de configuración php.ini.

Figura 11.21 PHP - Localización del archivo de configuración php.ini.

11.5.1. Descargar, crear el directorio y copiar los archivos

El proyecto del sandbox de Symfony ya viene preparado para ser ejecutado, pero se encuentra dentro de un archivo comprimido .zip.

Descarga el archivo del sandbox y extrae sus contenidos a un directorio temporal, como por ejemplo el directorio downloads que se encuentra dentro del directorio C:\Users\Administrator.

sandbox - Descargar y descomprimir el archivo.

Figura 11.22 sandbox - Descargar y descomprimir el archivo.

Crea un directorio para instalar el sandbox, como por ejemplo F:\dev\sfsandbox:

sandbox - Crea el directorio sfsandbox.

Figura 11.23 sandbox - Crea el directorio sfsandbox.

Selecciona todos los archivos del directorio en el que descomprimiste el sandbox y copialos en el nuevo directorio F:\dev\sfsandbox.

Si todo funciona bien, verás que se están copiando 2599 archivos:

sandbox - Copiar 2599 archivos.

Figura 11.24 sandbox - Copiar 2599 archivos.

11.5.2. Probando la ejecución

Abre una consola de comandos, entra en el directorio F:\dev\sfsandbox y ejecuta el siguiente comando:

PHP symfony -V

El resultado del comando anterior debería ser:

symfony version 1.3.0 (F:\dev\sfsandbox\lib\symfony)

En la misma consola de comandos, ejecuta:

SYMFONY.BAT -V

El resultado de este nuevo comando debería ser exactamente el mismo que antes:

symfony version 1.3.0 (F:\dev\sfsandbox\lib\symfony)
sandbox - Probando correctamente la línea de comandos.

Figura 11.25 sandbox - Probando correctamente la línea de comandos.

11.5.3. Creando la aplicación web

Para crear la aplicación web en el servidor local, se va a utilizar el gestor de IIS7, que es una interfaz gráfica que hace las veces de panel de control para todas las actividades relacionadas con IIS. En realidad, cualquier cambio que se realiza en la interfaz gráfica se ejecuta en segundo plando mediante la línea de comandos.

La consola del IIS Manager se puede acceder a través de Inicio > Programs > Administrative Tools > Internet Information Server (IIS) Manager.

11.5.3.1. Configurar el sitio web por defecto para que no interfiera en el puerto 80

Para asegurarnos de que solamente nuestro sandbox de Symfony responde en el puerto 80 (HTTP), modifica el puerto del "Default Web Site" existente al 8080.

IIS Manager - Configurando el "Default Web Site".

Figura 11.26 IIS Manager - Configurando el "Default Web Site".

Si el firewall de Windows está activo, es posible que debas crear una excepción para el puerto 8080 de forma que todavía se pueda acceder al "Default Web Site". Para ello, accede al panel de control de Windows, pincha sobre Windows Firewall selecciona la opción "Allow a program through Windows Firewall", pulsa sobre "Add port" y crea la excepción. Después de crearla, pulsa sobre el cuadrado para activarla.

Windows Firewall - Crear una excepción para el puerto 8080.

Figura 11.27 Windows Firewall - Crear una excepción para el puerto 8080.

11.5.3.2. Añadir un nuevo sitio web al sandbox

Accede a las Administration Tools y abre el IIS Manager. En la parte de la izquierda, selecciona el icono "Sites" y pulsa el botón derecho. Selecciona la opción Add Web Site e introduce como nombre del sitio "Symfony Sandbox". En la opción Physical Path selecciona D:\dev\sfsandbox y deja el resto de opciones sin cambiar. Deberías ver la siguiente ventana de diálogo:

IIS Manager - Añadir un nuevo sitio web.

Figura 11.28 IIS Manager - Añadir un nuevo sitio web.

Pincha sobre el botón OK. Si se muestra una pequeña x en el icono del sitio web (dentro de Features View / Sites) puedes hacerla desaparecer pinchando sobre el "Restart" que se muestra a la derecha.

11.5.3.3. Comprobando que el sitio web responde

Desde el IIS Manager, selecciona el sitio "Symfony Sandbox" y pulsa sobre la opción "Browse *.80 (http)" del panel derecho.

IIS Manager - Pincha en Browse port 80.

Figura 11.29 IIS Manager - Pincha en Browse port 80.

Si todo funciona bien, deberías ver el siguiente mensaje de error: HTTP Error 403.14 - Forbidden. El servidor web está configurado para no mostrar un listado de los contenidos del directorio.

El origen del error es que la configuración por defecto del servidor web impide mostrar un listado con todos los contenidos de los directorios. Como no existe ningún archivo llamado index.php o index.html en D:\dev\sfsandbox, el servidor muestra correctamente el error de tipo "Forbidden".

Internet Explorer - Error normal.

Figura 11.30 Internet Explorer - Error normal.

Accede a la URL http://localhost/web en tu navegador (en vez de simplemente http://localhost). Ahora si que deberías ver en tu navegador la famosa página "Symfony Project Created":

IIS Manager - Accediendo a la URL http://localhost/web.

Figura 11.31 IIS Manager - Accediendo a la URL http://localhost/web.

En la parte superior de la página verás una barra de color amarillo claro con el mensaje "Intranet settings are now turned off by default. Intranet settings are less secure than Internet settings. Click for options.".

No te preocupes por ese mensaje. Si quieres cerrarlo permanentemente, pincha el botón derecho sobre la barra amarilla y selecciona la opción apropiada.

Visualizar la página anterior confirma que la página index.php se ha cargado correctamente desde D:\dev\sfsandbox\web\index.php, que se ha ejecutado bien y que las librerías de Symfony están correctamente configuradas.

Antes de empezar a jugar con el sandbox de Symfony tenemos que realizar una última tarea: configurar la página web del frontend mediante las reglas de reescritura de URL. Estas reglas se encuentran en un archivo .htaccess y se pueden incorporar fácilmente al IIS Manager.

11.5.4. Configuración del frontend del sandbox

Para empezar a probar todas las opciones de Symfony, es necesario configurar la aplicación frontend del sandbox. Inicialmente la portada del frontend se puede acceder y se ejecuta correctamente cuando se accede desde el propio ordenador donde se encuentra el servidor (es decir, desde localhost o desde 127.0.0.1).

Internet Explorer - La página frontend_dev.php se puede acceder bien desde el localhost.

Figura 11.32 Internet Explorer - La página frontend_dev.php se puede acceder bien desde el localhost.

Para comprobar que el sandbox funciona correctamente bajo Windows Server 2008, pincha sobre las secciones "configuration", "logs" y "timers" de la barra de depuración web.

Configuración del sandbox.

Figura 11.33 Configuración del sandbox.

Mensajes de log del sandbox.

Figura 11.34 Mensajes de log del sandbox.

Control del tiempo del sandbox.

Figura 11.35 Control del tiempo del sandbox.

Aunque podríamos intentar acceder al sandbox desde Internet o desde cualquier dirección IP remota, el sandbox está pensado como una herramienta para aprender a utilizar Symfony en una máquina local. Por tanto, los detalles sobre el acceso remoto se mostrarán en la última sección de este capítulo.