Instalar Symfony sobre IIS

Desde hace algún tiempo he estado leyendo sobre varios frameworks de desarrollo con php, que me permitiesen de una forma fiable automatizar trabajo que, a pesar de no tener una dificultad notable para alguien que sepa programar, te hace perder un montón de tiempo si quieres hacer las cosas bien.

La opción que más me ha gustado para php es sin duda Symfony y puesto que desarrollo tanto para plataformas UNIX/Linux como para sistemas Microsoft, me interesé por hacerlo funcionar e incluso utilizarla en proyectos que actualmente me encuentro desarrollando bajo sistemas Microsoft.

Voy a detallar como es una instalación de Symfony en IIS. Yo lo tengo funcionando sobre 2003 Server SP2 con IIS6

1 – Se descarga el código fuente de Symfony y se descomprime en un directorio en una de las unidades de disco duro del servidor. (Supongamos D:\symfony)

2 – Se crea un directorio cuyo contenido será el que usemos como sitio web. (Supongamos D:\dir_proyecto)

3 – Abrimos un terminal, nos situamos en “dir_proyecto” y ejecutamos lo siguiente para crear un proyecto:

D:\symfony\data\bin\symfony.bat init-project nuevo_proyecto

Ahora creamos una primera aplicación para ese proyecto:

D:\symfony\data\bin\symfony.bat init-app nueva_aplicacion

4 – Creamos un sitio web nuevo que apunte al directorio “D:\dir_proyecto\web”.

5 – Dentro del ese nuevo sitio web, creamos un directorio virtual que apunte a “D:\symfony\data\web\sf”

6 -  Si usamos isapi rewrite necesitamos ahora aplicar las reglas de redirecciones para nuestro sitio web. En la documentación oficial nos comentan una serie de reglas específicas para entornos de IIS. Esas reglas pueden darnos problemas a la hora de acceder a los archivos del directorio “D:\symfony\data\web\sf”.

Para evitar estos problemas, debemos ser fieles a las reglas definidas en el .htaccess que se ha creado en el directorio “D:\dir_proyecto\web” y añadir las reglas de seguridad relativas a entornos Microsoft.

Las reglas de redireccionamiento quedarían de la siguiente forma:
RewriteRule .*(?:global.asa|default\.ida|root\.exe|\.\.).* . [F,I,O]

RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule (.*) /index.php [L]

Con esto ya deberíamos comprobar que todo funciona correctamente.

Sobre Asier

Arquitecto web enganchado al desarrollo, estudio y planteamiento de proyectos en internet. Trabajo en Blackslot, empresa que fundé en el 2009. Me encanta el cine, el café, el sexo, la cultura geek, la cultura oriental y la música electrónica.
Artículo publicado en Desarrollo Web, Frameworks, Microsoft, PHP, Servidores Web, Sistemas y etiquetada . Aquí tienes su enlace permanente.

9 espuestas a Instalar Symfony sobre IIS

  1. Todabia existen este tipo de locos que van por el mundo usando windows de servidor?

  2. @Pablo igual tu has visto algo malo en ellos que el resto no hemos conseguido descubrir

  3. Alberto de Tena dijo:

    @Asier la verdad es que Windows de servidor web es poco optimo. Pero bueno, no vamos a entrar en la discusion de siempre.

    Me hace gracia ver como te rompes la cabeza para instalar algo en windows (cuando no tiene su .exe chachi guay) y yo solo hago “emerge symfony”, igual que he hecho para todos los otros programas que tengo instalados en mi ordenador.

  4. @Alberto de Tena IIS es tan poco optimo como apache cuando no se sabe usar (siendo apache más pesado que IIS en windows) Pero si… mejor no entramos xD

    Eso no es problema de windows que yo sepa, aunque tampoco me he roto mucho la cabeza. El mayor problema ha sido jugar con las expresiones regulares en los rewrites ya que la documentación oficial estaba incorrecta.

  5. Alberto de Tena dijo:

    @Asier fijate que no hablo de Apache vs IIS, hablo de windows como sistema servidor web.

    Por lo otro, no digo que sea problema de windows solo que choca con el topico de “instalar cosas en linux es dificil, en windows es facil”.

  6. @Alberto hay que configurar algunas cosas, entre otras la pila tcp/ip para que funcione bien para internet, por defecto viene optimizada para intranet. Eso lo sabe todo el mundo que conozca el sistema operativo evidentemente.

    Hay empresas como myspace y wizard que usan windows server, y ambos sabemos que para aguantar ese trabajo necesitas un buen so.

    Yo ya sabes mi opinión sobre ese tópico. Realmente un supuesto profesional que discrimine un SO por ese tópico es un completo incompetente.

  7. Alberto de Tena dijo:

    @Asier no me baso en topicos, me baso en cosas observables y demostradas para discriminar windows como servidor web.

  8. @Alberto pues yo en base a mi experiencia respeto bastante windows server como servidor web

  9. Alberto de Tena dijo:

    Fair enough ;-)

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos requeridos, están marcados *

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>