3.4.1. El método incorrecto
En la sección anterior se creó un directorio para guardar todos los archivos del proyecto. Si has creado ese directorio bajo el directorio raíz del servidor web, ya puedes acceder a tu proyecto mediante un navegador web.
Como no es necesario configurar nada, esta es la forma más rápida de tener un proyecto Symfony listo para ser utilizado. Sin embargo, prueba a acceder desde tu navegador a un archivo tan confidencial como config/databases.yml
y comprenderás fácilmente el peligro que supone no configurar bien el servidor web. Si el usuario que accede a tu sitio web sabe que está desarrollado con Symfony, podrá acceder a muchos archivos con información sensible.
Nunca jamás instales tus proyectos de esta forma en un servidor de producción y lee la siguiente sección para aprender a configurar correctamente el servidor web.
3.4.2. El método seguro
Una buena práctica web consiste en colocar en el directorio raíz del servidor web solamente los archivos que necesitan los navegadores, como las hojas de estilos, los archivos JavaScript y las imágenes. Nuestra recomendación es que guardes todos estos archivos en el subdirectorio web/
del proyecto Symfony.
Si echas un vistazo a este directorio, verás algunos subdirectorios creados para cada tipo de archivo (css/
y images/
) y los archivos de los dos controladores frontales. Estos dos controladores frontales son los únicos archivos PHP que deben encontrarse bajo el directorio raíz del servidor web. El resto de archivos PHP se pueden ocultar a los navegadores, lo que es una buena idea desde el punto de vista de la seguridad.
3.4.3. Configuración del servidor web
Para que el proyecto se pueda acceder públicamente, debes configurar tu servidor web Apache. Localiza el archivo de configuración httpd.conf
y añade lo siguiente justo al final del archivo:
# Asegúrate de que sólo tienes esta línea una vez en todo el archivo de configuración NameVirtualHost 127.0.0.1:8080 # Esta es la configuración para tu proyecto Listen 127.0.0.1:8080 <VirtualHost 127.0.0.1:8080> DocumentRoot "/home/sfproject/web" DirectoryIndex index.php <Directory "/home/sfproject/web"> AllowOverride All Allow from All </Directory> Alias /sf /home/sfproject/lib/vendor/symfony/data/web/sf <Directory "/home/sfproject/lib/vendor/symfony/data/web/sf"> AllowOverride All Allow from All </Directory> </VirtualHost>
Nota El alias /sf
se necesita para las imágenes y archivos JavaScript que utilizan las páginas por defecto de Symfony y la barra de depuración web.
En Windows reemplaza la línea Alias
por algo como lo siguiente:
Alias /sf "c:\dev\sfproject\lib\vendor\symfony\data\web\sf"
Además, la ruta /home/sfproject/web
se debe sustituir por algo como lo siguiente c:\dev\sfproject\web
La configuración anterior hace que Apache espere las peticiones en el puerto 8080
de tu máquina, por lo que tu proyecto se puede acceder en la siguiente URL:
http://localhost:8080/
Puedes sustituir 8080
por cualquier otro número que prefieras, pero se recomienda utilizar un número mayor que 1024
para que no tengas que utilizar permisos de administrador.
3.4.4. Probar la nueva configuración
Reinicia el servidor web Apache y comprueba que puedes acceder a la aplicación abriendo un navegador y accediendo a la URL http://localhost:8080/index.php/ o http://www.miproyecto.com.localhost/index.php/ dependiendo de la configuración de Apache que elegiste en la sección anterior.
Nota Si tienes el módulo mod_write
correctamente instalado en Apache, puedes eliminar la parte index.php/
de todas las URL. El motivo es que Symfony crea el archivo web/.htaccess
que ya incluye las reglas necesarias para reescribir las URL.
También puedes probar a acceder a la aplicación en el entorno de desarrollo (los entornos se explican en la próxima sección). Para ello, accede a la siguiente URL:
http://www.miproyecto.com.localhost/frontend_dev.php/
La principal diferencia es que ahora se muestra la barra de depuración web en la esquina superior derecha, incluyendo unos pequeños iconos si has configurado correctamente el alias para la ruta sf/
.
Nota La configuración es un poco diferente si quieres ejecutar Symfony en el servidor web IIS de Windows, por lo que deberías leer el tutorial sobre cómo configurar IIS para Symfony.