Как настроить Django с IIS 8?

11

В прошлом я пытался запустить Django под IIS 8 в Windows 8 Developer Preview. Теперь, когда вышел Consumer Preview для Windows 8, мне стало интересно, смогу ли я получить некоторые подробные инструкции по настройке Django в IIS.

Как мне пройти этот процесс - я с трудом знаю, с чего начать. Нужен ли конкретный модуль ISAPI?

Натан Осман
источник

Ответы:

19

Этот процесс не совсем тривиален, но это возможно с помощью следующих шагов:

  1. Сначала скачайте и установите Python 2.6 . (Причина, по которой я предлагаю Python 2.6 вместо Python 2.7, заключается в том, что последняя версия Python, поддерживаемая модулем PyISAPIe, - это Python 2.6.) Запишите местоположение, в которое вы устанавливаете Python ( C:\Python26по умолчанию, если я правильно помню).

  2. Щелкните правой кнопкой мыши Компьютер и выберите Свойства. Нажмите Advanced System Settings слева.

    введите описание изображения здесь

  3. Перейдите на вкладку «Дополнительно» и нажмите кнопку «Переменные среды». Найдите путь в нижнем списке:

    введите описание изображения здесь

  4. Нажмите кнопку «Изменить ...» и перейдите к концу значения переменной и вставьте ;C:\Python26(точка с запятой плюс путь, по которому вы установили Python):

    введите описание изображения здесь

  5. Нажмите кнопку ОК, чтобы закрыть все диалоги.

  6. Затем загрузите последнюю версию PyISAPIe здесь . Извлеките содержимое архива куда-нибудь и откройте каталог.

  7. Затем откройте панель управления, нажмите «Программы и компоненты» и нажмите «Включить или отключить функции Windows» слева.

    введите описание изображения здесь

  8. Перейдите в раздел «Информационные службы Интернета» -> «Службы всемирной паутины» -> «Функции разработки приложений», а затем убедитесь, что расширения ISAPI проверены.

    введите описание изображения здесь

  9. Примените изменения и затем откройте IIS Manager. Дважды щелкните значок сопоставления обработчиков.

    введите описание изображения здесь

  10. Нажмите Add Module Mapping справа. В появившемся диалоговом окне введите следующую информацию:

    • Путь запроса: *
    • Модуль: IsapiModule
    • Исполняемый файл (необязательно): [Найдите путь, по которому вы извлекли PyISAPIe, и выберите PyISAPIe.dll]
    • Имя: Python через PyISAPIe


    Это должно выглядеть примерно так:

    введите описание изображения здесь

  11. Перед закрытием диалогового окна нажмите «Запретить запросы», снимите флажок «Вызывать обработчик, только если запрос сопоставлен с:», и нажмите «ОК». Также нажмите OK, чтобы закрыть диалоговое окно Add Module Mapping (нажмите Yes, если вас спросят, хотите ли вы добавить расширение с разрешенной записью в список ограничений ISAPI и CGI).

    введите описание изображения здесь

  12. Следующим шагом является загрузка Django . Извлеките содержимое архива куда-нибудь (отметив местоположение). Откройте командную строку (вы можете сделать это, нажав Win+ R, набрав cmdи нажав Enter) и введите, cdа затем местоположение, в которое вы извлекли Django:

    введите описание изображения здесь

  13. Нажмите Enter, введите cd dj, а затем нажмите Tab. Это должно завершить путь к папке Django, и вы можете нажать, Enterчтобы открыть каталог. Теперь введите python setup.py install:

    введите описание изображения здесь

  14. Теперь вам нужно создать проект Django. Например, мы будем создавать проекты в C:\Django. В окне команд введите следующие команды, а затем Enter:

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


    Это создает проект с именем «тест».

  15. После успешного завершения процесса последней оставшейся задачей является подключение PyISAPIe к Django. Для этого вернитесь в каталог, в который вы извлекли PyISAPIe, и найдите каталог Http. Внутри файл Isapi.py. Откройте его в текстовом редакторе и замените содержимое следующим текстом:

    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. Скопируйте каталог Http C:\Python26\Lib\site-packages(или соответствующий каталог, если вы установили Python где-то еще).

  17. Перезапустите IIS (вы можете сделать это, нажав «перезагрузить» в правой части IIS Manager):

    введите описание изображения здесь

  18. Если все работает правильно, вы можете перейти на http: // localhost для просмотра вашего нового сайта Django:

    введите описание изображения здесь


Дополнительные заметки и дополнения

  • С тех пор я сам скомпилировал PyISAPIe для Python 2.7 (как 32-битный, так и 64-битный) и загрузил файлы здесь: http://www.box.com/s/a5fb1b21fcdf738d2590

  • На шаге 6 необходимо убедиться, что он pyisapie.dllнаходится в каталоге, к которому у IIS есть как минимум доступ для чтения. Несоблюдение этого требования может привести к странным ошибкам.

Натан Осман
источник
2
Чертовски хороший ответ, Джордж. +1
Кев
1
Этот очень хороший ответ просто спаси меня
Трин Хоанг Нху,
Спасибо, но я изо всех сил пытаюсь заставить это работать. Вы не упоминаете, что создали сайт IIS (в разделе Сервер> Сайты). Тебе не нужно? Используете ли вы веб-сайт по умолчанию / DefaultAppPool? Если так, то что вы указываете в качестве корня сайта? Также: Как я узнаю, что DLL работает? Файлы .py в Http никогда не компилируются, поэтому я не думаю, что запросы обрабатываются Python / Django.
Эрик Лейбенгут
1

В этом блоге вы найдете подробное руководство по установке Django на IIS8:

Установка Django на IIS: пошаговое руководство

Короче эти шаги должны быть сделаны:

  • Установка Python в Windows
  • Установка Джанго
  • Установка проекта Django
  • Запуск тестового HTTP-сервера
  • Настройка и запуск сервера FastCGI
  • Настройка IIS для запуска приложения FastCGI
  • Настройка статического ресурса и медиа каталогов
  • Примечание о базах данных (примечания о совместимых драйверах для некоторых баз данных)
  • Устранение неполадок (заметки о том, как устранить неполадки)

Надеюсь, это поможет!

Дмитрий Павлов
источник
0

Другой вариант - использовать django-windows-tools, хотя он не обновлялся в течение нескольких лет. Он просто настраивает модуль FastCGI в IIS, чтобы вам не пришлось беспокоиться об использовании PyISAPIe.

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

Bobort
источник