Que tal amigos..
Aprovechando que esta este tema abierto quisiera exponerles mi duda en relación a cual es la mejor práctica para la instalación y creación de proyectos en symfony tomando en cuenta la seguridad que debemos tener para evitar exponer al usuario ciertos archivos que son delicados.
Yo uso el symfony con el Wampserver 2.1 y no se cual sea la mejor practica para instalarlo pero segun el practical symfony hay que tener mucho cuidado. Logre instalarlo de dos formas:
Forma #1:
-------------
1. Cree una carpeta para el proyecto del practical symfony llamada jobeet en c:\wamp\www\jobeet.
2. Descomprimi el archivo .Zip del symfony en c:\wamp\www\jobeet\lib\vendor tal como lo indica la guia.
3. Procedi a crear el proyecto Jobeet a traves de la consola de comandos, y siguiendo los pasos y rutas use el comando "generate:project jobeet" lo cual me genero en mi directorio c:\wamp\www\jobeet\ las siguientes carpetas:
en c:\wamp\www\jobeet:
\apps
\cache
\config
\lib
\log
\plugins
\test
\web
Lo cual como podrán ver el proyecto creo una carpeta lib que ya existia en mi directorio c:\wamp\www\jobeet, la cual contiene la carpeta vendor que es donde esta todos los archivos descomprimidos del framework
Hasta aqui esta todo segun lo que dice la guia del practical symfony, de hecho segui los siguientes pasos y funciono de maravilla.
Pero hay una seccion de la guia que advierte sobre los riesgos de seguridad y dice esto:
Configuración del Servidor Web: La Forma Fea
En la sección anterior, un directorio se ha creado para alojar el proyecto Jobeet. Si lo creaste bajo el directorio "raíz web" de tu servidor web, ya puedes acceder al proyecto en un navegador web.
Por supuesto, como no hay ninguna configuración, es muy rápido para establecer, pero intenta tener acceso al archivo config/databases.yml en tu navegador y comprederás las malas consecuencias de esta actitud perezosa. Si el usuario conoce que tu sitio web esta desarrollado con Symfony, él tendrá acceso a un montón de archivos delicados.
Nunca uses esta configuración en un servidor de producción, lee la siguiente sección para aprender cómo configurar su servidor web correctamente.
Configuración del Servidor Web: La forma segura
Una buena práctica web es poner bajo el directorio raíz web sólo los archivos a los que necesita tener acceso el navegador web: las hojas de estilo, JavaScripts, o imágenes. Te recomendamos almacenar estos archivos en el subdirectorio web de un proyecto symfony.
Si echas un vistazo a este directorio, encontrarás algunos sub-directorios para los recursos web y los dos archivos de los controladores frontales. Los controladores frontales son los únicos archivos PHP que necesitan estar bajo el directorio raíz web. Todos los demás archivos PHP se pueden ocultar del navegador, la cual es una buena idea en lo que respecta a seguridad.
La configuración del Servidor Web
Ahora es el momento de cambiar tu configuración de Apache para que el nuevo proyecto sea accesible para el mundo.
Busca y abre el archivo de configuración httpd.conf y añade la siguiente configuración al final:
Código:
# Asegúrate de tener sólo una vez esta línea en su configuración
NameVirtualHost 127.0.0.1:8080
# Esta es la configuración de Jobeet
Listen 127.0.0.1:8080
<VirtualHost 127.0.0.1:8080>
DocumentRoot "/home/sfprojects/jobeet/web"
DirectoryIndex index.php
<Directory "/home/sfprojects/jobeet/web">
AllowOverride All
Allow from All
</Directory>
Alias /sf /home/sfprojects/jobeet/lib/vendor/symfony/data/web/sf
<Directory "/home/sfprojects/jobeet/lib/vendor/symfony/data/web/sf">
AllowOverride All
Allow from All
</Directory>
</VirtualHost>
Siguiendo con esas indicaciones dicha configuración del archivo httpd.conf quedo de la siguiente manera tomando en cuenta que uso wampserver 2.1:
Código:
# Asegúrate de tener sólo una vez esta línea en su configuración
NameVirtualHost 127.0.0.1:80
# Esta es la configuración de Jobeet
#Listen 127.0.0.1:80
<VirtualHost 127.0.0.1:80>
ServerName jobeet.localhost
DocumentRoot "c:\wamp\www\jobeet\web"
DirectoryIndex index.php
<Directory "c:\wamp\www\jobeet\web">
AllowOverride All
Allow from All
</Directory>
Alias /sf c:\wamp\www\jobeet\lib\vendor\symfony\data\web\sf
<Directory "c:\wamp\www\jobeet\lib\vendor\symfony\data\web\sf">
AllowOverride All
Allow from All
</Directory>
</VirtualHost>
De esta forma tengo segura mi aplicacion? porque he leido que a la hora de subir los archivos al servidor web online uno tiene que tener los archivos del framework fuera del httdocs y los archivos del proyectos dentro de esa carpeta httdocs.
Esa es mi incognita puesto que tambien logre instalar el symfony de otra manera en donde en mi directorio c:\wamp\www\sf coloque los archivos del symfony es decir los que descomprimi del .zip y en el directorio c:\wamp\www\jobeet estan las famosas carpetas que se crean al generar un proyecto con el symfony.
Es por esto que quisiera que expusieran sus comentarios para que me aclaren las dudas en cuanto a como deberia trabajar con el symfony tomando en cuenta que sera una aplicación que estara hospedada en un servidor compartido y quisiera implementar el symfony con su maxima seguridad para evitar exponer archivos delicados como el databases.yml tal como lo explica el practical symfony que no deberia estar a la vista para el usuario.
Espero haber sido lo mas explicito posible y que puedan orientarme al respecto.
Muchisimas gracias de antemano por todo.
Saludos.