Wie richte ich Django mit IIS 8 ein?

11

Ich habe in der Vergangenheit versucht, Django unter IIS 8 in der Windows 8 Developer Preview zum Laufen zu bringen. Nachdem die Verbrauchervorschau von Windows 8 veröffentlicht wurde, habe ich mich gefragt, ob ich detaillierte Anweisungen zum Einrichten von Django in IIS erhalten könnte.

Wie gehe ich vor? Ich weiß kaum, wo ich anfangen soll. Benötige ich ein bestimmtes ISAPI-Modul?

Nathan Osman
quelle

Antworten:

19

Dieser Vorgang ist nicht gerade trivial, aber mit den folgenden Schritten möglich:

  1. Laden Sie zunächst Python 2.6 herunter und installieren Sie es . (Der Grund, warum ich Python 2.6 anstelle von Python 2.7 vorschlage, ist, dass die neueste Python-Version, die vom PyISAPIe-Modul unterstützt wird, Python 2.6 ist.) Notieren Sie sich den Speicherort, an dem Sie Python installieren ( C:\Python26standardmäßig, wenn ich mich richtig erinnere).

  2. Klicken Sie mit der rechten Maustaste auf Computer und klicken Sie auf Eigenschaften. Klicken Sie links auf Erweiterte Systemeinstellungen.

    Geben Sie hier die Bildbeschreibung ein

  3. Klicken Sie auf die Registerkarte Erweitert und dann auf die Schaltfläche Umgebungsvariablen. Suchen Sie den Pfad im unteren Listenfeld:

    Geben Sie hier die Bildbeschreibung ein

  4. Klicken Sie auf die Schaltfläche "Bearbeiten ..." und gehen Sie zum Ende des Variablenwerts und fügen Sie ihn ein ;C:\Python26(ein Semikolon plus den Pfad, auf dem Sie Python installiert haben):

    Geben Sie hier die Bildbeschreibung ein

  5. Klicken Sie auf OK, um alle Dialoge zu schließen.

  6. Laden Sie als Nächstes die neueste Version von PyISAPIe hier herunter . Extrahieren Sie den Inhalt des Archivs irgendwo und öffnen Sie das Verzeichnis.

  7. Öffnen Sie als Nächstes die Systemsteuerung, klicken Sie auf Programme und Funktionen und klicken Sie links auf "Windows-Funktionen aktivieren oder deaktivieren".

    Geben Sie hier die Bildbeschreibung ein

  8. Navigieren Sie zu Internetinformationsdienste -> World Wide Web Services -> Anwendungsentwicklungsfunktionen und stellen Sie sicher, dass ISAPI-Erweiterungen aktiviert sind.

    Geben Sie hier die Bildbeschreibung ein

  9. Übernehmen Sie die Änderungen und öffnen Sie den IIS-Manager. Doppelklicken Sie auf das Symbol Handlerzuordnungen.

    Geben Sie hier die Bildbeschreibung ein

  10. Klicken Sie rechts auf Modulzuordnung hinzufügen. Geben Sie im angezeigten Dialogfeld die folgenden Informationen ein:

    • Anforderungspfad: *
    • Modul: IsapiModule
    • Ausführbar (optional): [Navigieren Sie zu dem Pfad, in den Sie PyISAPIe extrahiert haben, und wählen Sie PyISAPIe.dll]
    • Name: Python über PyISAPIe


    Es sollte ungefähr so ​​aussehen:

    Geben Sie hier die Bildbeschreibung ein

  11. Klicken Sie vor dem Schließen des Dialogfelds auf Anforderungsbeschränkungen, deaktivieren Sie "Handler nur aufrufen, wenn die Anforderung zugeordnet ist:" und klicken Sie auf OK. Klicken Sie auch auf OK, um das Dialogfeld Modulzuordnung hinzufügen zu schließen (klicken Sie auf Ja, wenn Sie gefragt werden, ob Sie die Erweiterung mit einem zulässigen Eintrag zur Liste der ISAPI- und CGI-Einschränkungen hinzufügen möchten).

    Geben Sie hier die Bildbeschreibung ein

  12. Der nächste Schritt ist das Herunterladen von Django . Extrahieren Sie den Inhalt des Archivs irgendwo (unter Angabe des Speicherorts). Öffnen Sie eine Eingabeaufforderung (Sie können dies tun , indem Sie Win+ R, Schreib- cmdund Schlagen Enter) und Typ cddurch den Ort , gefolgt Sie Django extrahiert:

    Geben Sie hier die Bildbeschreibung ein

  13. Drücken Sie Enter, tippen Sie cd djund drücken Sie dann Tab. Dies sollte den Pfad zum Django-Ordner vervollständigen und Sie können drücken Enter, um das Verzeichnis zu öffnen. Geben Sie nun Folgendes ein python setup.py install:

    Geben Sie hier die Bildbeschreibung ein

  14. Jetzt müssen Sie das Django-Projekt erstellen. Zum Beispiel erstellen wir die Projekte unter C:\Django. Geben Sie im Befehlsfenster die folgenden Befehle ein, gefolgt von Enter:

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


    Dadurch wird ein Projekt mit dem Namen "Test" erstellt.

  15. Sobald der Prozess erfolgreich abgeschlossen wurde, besteht die letzte verbleibende Aufgabe darin, PyISAPIe mit Django zu verbinden. Kehren Sie dazu zu dem Verzeichnis zurück, in das Sie PyISAPIe extrahiert haben, und suchen Sie nach einem HTTP-Verzeichnis. Darin befindet sich eine Datei Isapi.py. Öffnen Sie es in einem Texteditor und ersetzen Sie den Inhalt durch Folgendes:

    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. Kopieren Sie das HTTP-Verzeichnis nach C:\Python26\Lib\site-packages (oder in das entsprechende Verzeichnis, wenn Sie Python an einer anderen Stelle installiert haben).

  17. Starten Sie IIS neu (Sie können dies tun, indem Sie rechts im IIS-Manager auf "Neustart" klicken):

    Geben Sie hier die Bildbeschreibung ein

  18. Wenn alles richtig funktioniert hat, sollten Sie in der Lage sein, unter http: // localhost Ihre neue Django-Site anzuzeigen:

    Geben Sie hier die Bildbeschreibung ein


Weitere Hinweise und Ergänzungen

  • Seitdem habe ich PyISAPIe für Python 2.7 selbst kompiliert (sowohl 32-Bit als auch 64-Bit) und die Dateien hier hochgeladen: http://www.box.com/s/a5fb1b21fcdf738d2590

  • In Schritt 6 müssen Sie sicherstellen, dass pyisapie.dllsich das Verzeichnis in einem Verzeichnis befindet, auf das IIS mindestens Lesezugriff hat. Wenn Sie dies nicht berücksichtigen, führt dies zu seltsamen Fehlern.

Nathan Osman
quelle
2
Verdammt nette Antwort, George. +1
Kev
1
Diese sehr schöne Antwort rette mich einfach
Trinh Hoang Nhu
Danke, aber ich habe Mühe, es zum Laufen zu bringen. Sie erwähnen nicht, dass Sie eine IIS-Website erstellen (unter Server> Sites). Musst du nicht Verwenden Sie die Standardwebsite / DefaultAppPool? Wenn ja, was geben Sie dann als Website-Stamm an? Außerdem: Woher weiß ich, dass die DLL funktioniert? Die .py-Dateien unter Http werden nie kompiliert, daher glaube ich nicht, dass die Anforderungen von Python / Django bearbeitet werden.
Eric Leibenguth
1

Die ausführliche Anleitung zur Installation von Django auf IIS8 finden Sie in diesem Blogbeitrag:

Django auf IIS installieren: Eine Schritt-für-Schritt-Anleitung

Kurz gesagt, diese Schritte müssen ausgeführt werden:

  • Python unter Windows installieren
  • Django installieren
  • Installieren eines Django-Projekts
  • Ausführen eines Test-HTTP-Servers
  • Konfigurieren und Ausführen eines FastCGI-Servers
  • Konfigurieren von IIS zum Ausführen einer FastCGI-Anwendung
  • Konfigurieren der statischen Ressourcen- und Medienverzeichnisse
  • Ein Hinweis zu Datenbanken (Hinweise zu kompatiblen Treibern für einige Datenbanken)
  • Fehlerbehebung (Hinweise zur Fehlerbehebung)

Ich hoffe, das hilft!

Dmitry Pavlov
quelle
0

Eine andere Möglichkeit ist die Verwendung von Django-Windows-Tools, die jedoch seit einigen Jahren nicht mehr aktualisiert wurden. Es richtet einfach das FastCGI-Modul in IIS für Sie ein, sodass Sie sich nicht um die Verwendung von PyISAPIe kümmern müssen.

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

Bobort
quelle