Назад | Перейти на главную страницу

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

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

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

Этот процесс не совсем тривиальный, но его можно выполнить, выполнив следующие действия:

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

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

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

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

  5. Щелкните OK, чтобы закрыть все диалоговые окна.

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

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

  8. Перейдите к Internet Information Services -> World Wide Web Services -> Application Development Features, а затем убедитесь, что установлен флажок ISAPI Extensions.

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

  10. Нажмите "Добавить сопоставление модулей" справа. В появившемся диалоговом окне введите следующую информацию:

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


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

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

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

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

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

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


    Это создает проект под названием «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 имеет хотя бы доступ для чтения. Несоблюдение этого правила приведет к странным ошибкам.

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

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

Короче говоря, нужно сделать следующие шаги:

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

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

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

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