Jak skonfigurować Django z IIS 8?

11

W przeszłości próbowałem uruchomić Django pod IIS 8 w Windows 8 Developer Preview. Teraz, gdy wersja zapoznawcza systemu Windows 8 jest już dostępna, zastanawiałem się, czy mogę uzyskać szczegółowe instrukcje dotyczące konfigurowania Django w IIS.

Jak przejść przez ten proces - prawie nie wiem od czego zacząć. Czy potrzebuję konkretnego modułu ISAPI?

Nathan Osman
źródło

Odpowiedzi:

19

Ten proces nie jest trywialny, ale można go wykonać, wykonując następujące czynności:

  1. Najpierw pobierz i zainstaluj Python 2.6 . (Powodem, dla którego sugeruję Python 2.6 zamiast Python 2.7 jest to, że najnowszą wersją Pythona obsługiwaną przez moduł PyISAPIe jest Python 2.6.) Zanotuj lokalizację, w której instalujesz Python ( C:\Python26domyślnie, jeśli dobrze pamiętam).

  2. Kliknij prawym przyciskiem myszy Komputer i kliknij Właściwości. Kliknij Zaawansowane ustawienia systemu po lewej stronie.

    wprowadź opis zdjęcia tutaj

  3. Kliknij kartę Zaawansowane, a następnie kliknij przycisk Zmienne środowiskowe. Znajdź ścieżkę w dolnym polu listy:

    wprowadź opis zdjęcia tutaj

  4. Kliknij przycisk „Edytuj ...” i przejdź do końcowej wartości zmiennej i wstaw ;C:\Python26(średnik plus ścieżka do której zainstalowałeś Python):

    wprowadź opis zdjęcia tutaj

  5. Kliknij przycisk OK, aby zamknąć wszystkie okna dialogowe.

  6. Następnie pobierz najnowszą wersję PyISAPIe tutaj . Wyodrębnij gdzieś zawartość archiwum i otwórz katalog.

  7. Następnie otwórz Panel sterowania, kliknij Programy i funkcje, a następnie kliknij „Włącz lub wyłącz funkcje systemu Windows” po lewej stronie.

    wprowadź opis zdjęcia tutaj

  8. Przejdź do Internetowych usług informacyjnych -> World Wide Web Services -> Funkcje tworzenia aplikacji, a następnie upewnij się, że rozszerzenia ISAPI są zaznaczone.

    wprowadź opis zdjęcia tutaj

  9. Zastosuj zmiany, a następnie otwórz Menedżera usług IIS. Kliknij dwukrotnie ikonę Mapowania programu obsługi.

    wprowadź opis zdjęcia tutaj

  10. Kliknij Dodaj mapowanie modułów po prawej stronie. W wyświetlonym oknie dialogowym wprowadź następujące informacje:

    • Ścieżka żądania: *
    • Moduł: IsapiModule
    • Plik wykonywalny (opcjonalnie): [Przejdź do ścieżki, z której wyodrębniono PyISAPIe i wybierz PyISAPIe.dll]
    • Nazwa: Python przez PyISAPIe


    Powinno to wyglądać mniej więcej tak:

    wprowadź opis zdjęcia tutaj

  11. Przed zamknięciem okna dialogowego kliknij Żądaj ograniczeń, odznacz „Wywoływaj moduł obsługi tylko wtedy, gdy żądanie jest zamapowane na:”, i kliknij OK. Kliknij także OK, aby zamknąć okno dialogowe Dodaj mapowanie modułów (kliknij Tak, jeśli pojawi się pytanie, czy chcesz dodać rozszerzenie z Dozwolonym wpisem do listy ograniczeń ISAPI i CGI).

    wprowadź opis zdjęcia tutaj

  12. Następnym krokiem jest pobranie Django . Wyodrębnij gdzieś zawartość archiwum (zwracając uwagę na lokalizację). Otwórz wiersz polecenia (możesz to zrobić, naciskając Win+ R, wpisując cmdi naciskając Enter), a cdnastępnie wpisz lokalizację, do której rozpakowałeś Django, aby:

    wprowadź opis zdjęcia tutaj

  13. Naciśnij Enter, wpisz cd dj, a następnie pchnij Tab. To powinno zakończyć ścieżkę do folderu Django i możesz nacisnąć, Enteraby otworzyć katalog. Teraz wpisz python setup.py install:

    wprowadź opis zdjęcia tutaj

  14. Teraz musisz utworzyć projekt Django. Na przykład będziemy tworzyć projekty w ramach C:\Django. W oknie poleceń wpisz poniższe polecenia, a następnie Enter:

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


    To tworzy projekt o nazwie „test”.

  15. Po pomyślnym zakończeniu procesu ostatnim pozostałym zadaniem jest połączenie PyISAPIe z Django. Aby to zrobić, wróć do katalogu, do którego wyodrębniono PyISAPIe i poszukaj katalogu HTTP. Wewnątrz jest plik Isapi.py. Otwórz go w edytorze tekstu i zastąp zawartość następującymi elementami:

    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. Skopiuj katalog Http do C:\Python26\Lib\site-packages(lub odpowiedni katalog, jeśli zainstalowałeś Python gdzie indziej).

  17. Zrestartuj IIS (możesz to zrobić klikając „restart” po prawej stronie Menedżera IIS):

    wprowadź opis zdjęcia tutaj

  18. Jeśli wszystko działało poprawnie, powinieneś być w stanie przejść do http: // localhost, aby zobaczyć swoją nową stronę Django:

    wprowadź opis zdjęcia tutaj


Dalsze uwagi i uzupełnienia

  • Od tego czasu skompilowałem PyISAPIe dla Pythona 2.7 (zarówno 32-bitowy, jak i 64-bitowy) i przesłałem pliki tutaj: http://www.box.com/s/a5fb1b21fcdf738d2590

  • W kroku 6 musisz upewnić się, że pyisapie.dllznajduje się w katalogu, do którego IIS ma przynajmniej dostęp do odczytu. Nieuwzględnienie tego spowoduje dziwne błędy.

Nathan Osman
źródło
2
Cholernie miła odpowiedź George. +1
Kev
1
Ta bardzo miła odpowiedź uratuj mnie
Trinh Hoang Nhu,
Dzięki, ale staram się, żeby to zadziałało. Nie wspominasz, że tworzysz witrynę IIS (w obszarze Serwer> Witryny). Nie musisz Czy korzystasz z domyślnego serwisu WWW / DefaultAppPool? Jeśli tak, to co określasz jako katalog główny witryny? Ponadto: Skąd mam wiedzieć, że biblioteka DLL działa? Pliki .py w Http nigdy nie są kompilowane, więc nie sądzę, że żądania są obsługiwane przez Python / Django.
Eric Leibenguth,
1

Szczegółowy przewodnik instalacji Django na IIS8 znajdziesz w tym poście na blogu:

Instalowanie Django w IIS: samouczek krok po kroku

Krótko mówiąc, należy wykonać następujące kroki:

  • Instalowanie Pythona w systemie Windows
  • Instalowanie Django
  • Instalowanie projektu Django
  • Uruchamianie testowego serwera HTTP
  • Konfigurowanie i uruchamianie serwera FastCGI
  • Konfigurowanie usług IIS do uruchamiania aplikacji FastCGI
  • Konfigurowanie statycznych katalogów zasobów i multimediów
  • Uwaga na temat baz danych (uwagi na temat zgodnych sterowników dla niektórych baz danych)
  • Rozwiązywanie problemów (uwagi na temat rozwiązywania problemów)

Mam nadzieję, że to pomaga!

Dmitrij Pawłow
źródło