¿Cómo configurar Django con IIS 8?

11

En el pasado, intenté ejecutar Django bajo IIS 8 en Windows 8 Developer Preview. Ahora que ya está disponible la Vista previa del consumidor de Windows 8, me preguntaba si podría obtener algunas instrucciones detalladas sobre cómo configurar Django dentro de IIS.

¿Cómo hago para este proceso? Apenas sé por dónde empezar. ¿Necesito un módulo ISAPI específico?

Nathan Osman
fuente

Respuestas:

19

Este proceso no es exactamente trivial, pero es posible utilizando los siguientes pasos:

  1. Primero, descargue e instale Python 2.6 . (La razón por la que sugiero Python 2.6 en lugar de Python 2.7 es porque la última versión de Python compatible con el módulo PyISAPIe es Python 2.6.) Tome nota de la ubicación en la que instala Python ( C:\Python26de forma predeterminada, si no recuerdo mal).

  2. Haga clic con el botón derecho en Equipo y haga clic en Propiedades. Haga clic en Configuración avanzada del sistema a la izquierda.

    ingrese la descripción de la imagen aquí

  3. Haga clic en la pestaña avanzada y luego haga clic en el botón Variables de entorno. Busque la ruta en el cuadro de lista inferior:

    ingrese la descripción de la imagen aquí

  4. Haga clic en el botón "Editar ..." y vaya al valor de la variable final e inserte ;C:\Python26(un punto y coma más la ruta en la que instaló Python):

    ingrese la descripción de la imagen aquí

  5. Haga clic en Aceptar para cerrar todos los cuadros de diálogo.

  6. A continuación, descargue la última versión de PyISAPIe aquí . Extraiga el contenido del archivo en algún lugar y abra el directorio.

  7. A continuación, abra el Panel de control, haga clic en Programas y características, y haga clic en "Activar o desactivar las características de Windows" a la izquierda.

    ingrese la descripción de la imagen aquí

  8. Vaya a Internet Information Services -> World Wide Web Services -> Características de desarrollo de aplicaciones y luego asegúrese de que las Extensiones ISAPI estén marcadas.

    ingrese la descripción de la imagen aquí

  9. Aplique los cambios y luego abra el Administrador de IIS. Haga doble clic en el icono de Asignaciones de controlador.

    ingrese la descripción de la imagen aquí

  10. Haga clic en Agregar asignación de módulo a la derecha. En el cuadro de diálogo que aparece, ingrese la siguiente información:

    • Ruta de solicitud: *
    • Módulo: IsapiModule
    • Ejecutable (opcional): [Busque la ruta donde extrajo PyISAPIe y seleccione PyISAPIe.dll]
    • Nombre: Python a través de PyISAPIe


    Debería verse más o menos así:

    ingrese la descripción de la imagen aquí

  11. Antes de cerrar el cuadro de diálogo, haga clic en Solicitar restricciones, desactive "Invocar controlador solo si la solicitud está asignada a:" y haga clic en Aceptar. También haga clic en Aceptar para cerrar el cuadro de diálogo Agregar asignación de módulo (haga clic en Sí si se le pregunta si desea agregar la extensión con una entrada Permitida a la lista de Restricciones de ISAPI y CGI).

    ingrese la descripción de la imagen aquí

  12. El siguiente paso es descargar Django . Extraiga el contenido del archivo en alguna parte (anotando la ubicación). Abra un símbolo del sistema (puede hacer esto presionando Win+ R, escribiendo cmdy presionando Enter) y escriba cdseguido de la ubicación donde extrajo Django para:

    ingrese la descripción de la imagen aquí

  13. Presione Enter, escriba cd djy luego presione Tab. Esto debería completar la ruta a la carpeta Django y puede presionar Enterpara abrir el directorio. Ahora escriba python setup.py install:

    ingrese la descripción de la imagen aquí

  14. Ahora necesita crear el proyecto Django. Por ejemplo, crearemos los proyectos bajo C:\Django. En la ventana de comandos, escriba los siguientes comandos seguidos de Enter:

    • cd C:\
    • mkdir Django
    • cd Django
    • python C:\Python26\Lib\site-packages\django\bin\django-admin.py startproject test


    Esto crea un proyecto llamado 'prueba'.

  15. Una vez que el proceso se completa con éxito, la última tarea restante es conectar PyISAPIe a Django. Para hacer esto, regrese al directorio donde extrajo PyISAPIe y busque un directorio Http. Dentro hay un archivo Isapi.py. Ábralo en un editor de texto y reemplace el contenido con lo siguiente:

    from django.core.handlers.wsgi import WSGIHandler as DjangoHandler
    from Http.WSGI import RunWSGI
    from Http import Env
    import os, sys
    
    sys.path.append('C:\Django')
    os.environ['DJANGO_SETTINGS_MODULE'] = 'test.settings'
    
    def Request():
    
        PathInfo = Env.PATH_INFO
    
        if not PathInfo.startswith('/'):
            return True
    
        for Excl in ['/media']:
            if PathInfo.startswith(Excl):
                return True
    
        return RunWSGI(DjangoHandler(), Base='/')
    
  16. Copie el directorio Http en C:\Python26\Lib\site-packages(o el directorio apropiado si instaló Python en otro lugar).

  17. Reinicie IIS (puede hacer esto haciendo clic en "reiniciar" en el lado derecho del Administrador de IIS):

    ingrese la descripción de la imagen aquí

  18. Si todo funcionó correctamente, debería poder ir a http: // localhost para ver su nuevo sitio de Django:

    ingrese la descripción de la imagen aquí


Notas adicionales y adiciones

  • Desde entonces he compilado PyISAPIe para Python 2.7 (tanto de 32 bits como de 64 bits) y he subido los archivos aquí: http://www.box.com/s/a5fb1b21fcdf738d2590

  • En el paso 6, debe asegurarse de que pyisapie.dllesté en un directorio al que IIS tenga al menos acceso de lectura. Si no se tiene en cuenta esto, se producirán errores extraños.

Nathan Osman
fuente
2
Buena respuesta sangrienta George. +1
Kev
1
Esta muy buena respuesta solo me salvó
Trinh Hoang Nhu
Gracias, pero estoy luchando para que funcione. No menciona que crea un sitio web de IIS (en Servidor> Sitios). No tienes que ¿Utiliza el sitio web predeterminado / DefaultAppPool? Si es así, ¿qué indica como raíz del sitio web? Además: ¿Cómo sé que la DLL está funcionando? Los archivos .py en Http nunca se compilan, por lo que no creo que Python / Django maneje las solicitudes.
Eric Leibenguth
1

Encontrará la guía detallada sobre cómo instalar Django en IIS8 dentro de esta publicación de blog:

Instalación de Django en IIS: un tutorial paso a paso

En resumen, estos pasos deben hacerse:

  • Instalar Python en Windows
  • Instalando Django
  • Instalar un proyecto Django
  • Ejecutar un servidor HTTP de prueba
  • Configurar y ejecutar un servidor FastCGI
  • Configurar IIS para ejecutar una aplicación FastCGI
  • Configurar el recurso estático y los directorios de medios
  • Una nota sobre bases de datos (notas sobre controladores compatibles para algunas bases de datos)
  • Solución de problemas (notas sobre cómo solucionar problemas)

¡Espero que ayude!

Dmitry Pavlov
fuente