Comment configurer Django avec IIS 8?

11

J'ai essayé par le passé de faire fonctionner Django sous IIS 8 dans Windows 8 Developer Preview. Maintenant que l'aperçu grand public de Windows 8 est sorti, je me demandais si je pouvais obtenir des instructions détaillées sur la configuration de Django dans IIS.

Comment dois-je procéder pour ce processus - je sais à peine par où commencer. Ai-je besoin d'un module ISAPI spécifique?

Nathan Osman
la source

Réponses:

19

Ce processus n'est pas exactement trivial mais il est possible en utilisant les étapes suivantes:

  1. Tout d'abord, téléchargez et installez Python 2.6 . (La raison pour laquelle je suggère Python 2.6 au lieu de Python 2.7 est que la dernière version Python prise en charge par le module PyISAPIe est Python 2.6.) Prenez note de l'emplacement sur lequel vous installez Python ( C:\Python26par défaut si je me souviens bien).

  2. Cliquez avec le bouton droit sur Ordinateur et cliquez sur Propriétés. Cliquez sur Paramètres système avancés sur la gauche.

    entrez la description de l'image ici

  3. Cliquez sur l'onglet avancé, puis sur le bouton Variables d'environnement. Recherchez le chemin dans la zone de liste inférieure:

    entrez la description de l'image ici

  4. Cliquez sur le bouton "Modifier ..." et allez à la fin de la valeur variable et insérez ;C:\Python26(un point-virgule plus le chemin vers lequel vous avez installé Python):

    entrez la description de l'image ici

  5. Cliquez sur OK pour fermer toutes les boîtes de dialogue.

  6. Ensuite, téléchargez la dernière version de PyISAPIe ici . Extrayez le contenu de l'archive quelque part et ouvrez le répertoire.

  7. Ensuite, ouvrez le Panneau de configuration, cliquez sur Programmes et fonctionnalités, puis cliquez sur "Activer ou désactiver les fonctionnalités Windows" sur la gauche.

    entrez la description de l'image ici

  8. Accédez à Internet Information Services -> World Wide Web Services -> Application Development Features et assurez-vous que les extensions ISAPI sont cochées.

    entrez la description de l'image ici

  9. Appliquez les modifications, puis ouvrez IIS Manager. Double-cliquez sur l'icône Mappages de gestionnaires.

    entrez la description de l'image ici

  10. Cliquez sur Ajouter un mappage de module sur la droite. Dans la boîte de dialogue qui apparaît, entrez les informations suivantes:

    • Chemin de demande: *
    • Module: IsapiModule
    • Exécutable (facultatif): [Naviguez jusqu'au chemin où vous avez extrait PyISAPIe et sélectionnez PyISAPIe.dll]
    • Nom: Python via PyISAPIe


    Ça devrait ressembler a quelque chose comme ca:

    entrez la description de l'image ici

  11. Avant de fermer la boîte de dialogue, cliquez sur Request Restrictions, décochez "Invoke handler only if request is mapped to:", et cliquez sur OK. Cliquez également sur OK pour fermer la boîte de dialogue Ajouter un mappage de module (cliquez sur Oui si vous êtes invité à ajouter l'extension avec une entrée autorisée à la liste des restrictions ISAPI et CGI).

    entrez la description de l'image ici

  12. La prochaine étape consiste à télécharger Django . Extrayez le contenu de l'archive quelque part (en notant l'emplacement). Ouvrez une invite de commande (vous pouvez le faire en appuyant sur Win+ R, en tapant cmdet en appuyant Enter) et tapez cdsuivi de l'emplacement dans lequel vous avez extrait Django:

    entrez la description de l'image ici

  13. Appuyez sur Enter, tapez cd dj, puis appuyez sur Tab. Cela devrait compléter le chemin d'accès au dossier Django et vous pouvez appuyer sur Enterpour ouvrir le répertoire. Tapez maintenant python setup.py install:

    entrez la description de l'image ici

  14. Vous devez maintenant créer le projet Django. Par exemple, nous allons créer les projets sous C:\Django. Dans la fenêtre de commande, tapez les commandes ci-dessous suivies de Enter:

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


    Cela crée un projet nommé «test».

  15. Une fois le processus terminé avec succès, la dernière tâche restante consiste à connecter PyISAPIe à Django. Pour ce faire, retournez dans le répertoire dans lequel vous avez extrait PyISAPIe et recherchez un répertoire Http. A l'intérieur se trouve un fichier Isapi.py. Ouvrez-le dans un éditeur de texte et remplacez le contenu par ce qui suit:

    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. Copiez le répertoire Http C:\Python26\Lib\site-packages(ou le répertoire approprié si vous avez installé Python ailleurs).

  17. Redémarrez IIS (vous pouvez le faire en cliquant sur "redémarrer" dans la partie droite du Gestionnaire IIS):

    entrez la description de l'image ici

  18. Si tout fonctionnait correctement, vous devriez pouvoir aller sur http: // localhost pour voir votre nouveau site Django:

    entrez la description de l'image ici


Autres notes et ajouts

  • Depuis, j'ai moi-même compilé PyISAPIe pour Python 2.7 (32 bits et 64 bits) et téléchargé les fichiers ici: http://www.box.com/s/a5fb1b21fcdf738d2590

  • À l'étape 6, vous devez vous assurer qu'il se pyisapie.dlltrouve dans un répertoire auquel IIS a au moins un accès en lecture. Ne pas en tenir compte entraînera d'étranges erreurs.

Nathan Osman
la source
2
Bonne réponse sanglante George. +1
Kev
1
Cette très belle réponse vient de me sauver
Trinh Hoang Nhu
Merci, mais j'ai du mal à le faire fonctionner. Vous ne mentionnez pas que vous créez un site Web IIS (sous Serveur> Sites). Tu n'es pas obligé? Utilisez-vous le site Web par défaut / DefaultAppPool? Si oui, qu'indiquez-vous comme racine du site Web? Aussi: Comment savoir que la DLL fonctionne? Les fichiers .py sous Http ne sont jamais compilés, donc je ne pense pas que les requêtes soient gérées par Python / Django.
Eric Leibenguth
1

Vous trouverez le guide détaillé sur l'installation de Django sur IIS8 dans ce billet de blog:

Installation de Django sur IIS: un didacticiel pas à pas

En bref, ces étapes doivent être effectuées:

  • Installer Python sur Windows
  • Installer Django
  • Installer un projet Django
  • Exécution d'un serveur HTTP de test
  • Configuration et exécution d'un serveur FastCGI
  • Configuration d'IIS pour exécuter une application FastCGI
  • Configuration des répertoires de ressources statiques et multimédias
  • Une note sur les bases de données (notes sur les pilotes compatibles pour certaines bases de données)
  • Dépannage (notes sur la façon de dépanner)

J'espère que cela pourra aider!

Dmitry Pavlov
la source
0

Une autre option consiste à utiliser django-windows-tools, bien qu'il n'ait pas été mis à jour depuis quelques années. Il configure simplement le module FastCGI dans IIS pour que vous n'ayez pas à vous soucier de l'utilisation de PyISAPIe.

https://github.com/antoinemartin/django-windows-tools

Bobort
la source