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
.
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
.
Crea un directorio para instalar el sandbox, como por ejemplo F:\dev\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:
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)
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.
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.
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:
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.
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".
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":
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
).
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.
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.