Як налаштувати Django за допомогою IIS 8?


11

У минулому я намагався запустити Django під IIS 8 в Windows 8 Developer 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. Клацніть правою кнопкою миші Комп'ютер і виберіть Властивості. Клацніть Додаткові параметри системи зліва.

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

  3. Перейдіть на вкладку «Додаткові» та натисніть кнопку «Змінні середовища». Знайдіть Шлях у нижньому полі списку:

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

  4. Клацніть кнопку "Редагувати ..." і перейдіть до кінця Значення змінної та вставте ;C:\Python26(крапка з комою плюс шлях, до якого встановлено Python):

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

  5. Клацніть OK, щоб відхилити всі діалогові вікна.

  6. Далі, завантажте останню версію PyISAPIe тут . Витягніть десь вміст архіву та відкрийте каталог.

  7. Потім відкрийте Панель управління, натисніть Програми та функції та натисніть "Увімкнути або вимкнути функції Windows" зліва.

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

  8. Перейдіть до Інтернет-сервісів інформації -> Послуги всесвітньої веб-служби -> Особливості розробки додатків і переконайтесь, що прапорці ISAPI розширені.

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

  9. Застосуйте зміни та відкрийте диспетчер IIS. Двічі клацніть піктограму Обробник відображень.

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

  10. Клацніть Додати карту модуля праворуч. У діалоговому вікні, що з’явиться, введіть таку інформацію:

    • Шлях запиту: *
    • Модуль: IsapiModule
    • Виконано (необов’язково): [Перейдіть до шляху, де ви видобули PyISAPIe і виберіть PyISAPIe.dll]
    • Ім'я: Python через PyISAPIe


    Це має виглядати приблизно так:

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

  11. Перш ніж закрити діалогове вікно, натисніть Запити обмеження, зніміть прапорець "Викликати обробник лише у тому випадку, якщо запит відображено на:", і натисніть кнопку ОК. Також натисніть кнопку ОК, щоб закрити діалогове вікно Додати картографування модуля (натисніть Так, якщо вас запитують, чи потрібно додати розширення із дозволеним записом до списку обмежень ISAPI та CGI).

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

  12. Наступний крок - завантажити Django . Витягніть десь вміст архіву (зазначивши розташування). Відкрийте командний рядок (це можна зробити, натиснувши Win+ R, набравши cmdта натиснувши Enter) та введіть, cdа потім розташування, з якого ви вилучили Джанго:

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

  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
Ця дуже приємна відповідь просто врятує мене
Trinh Hoang Nhu

Дякую, але я намагаюся, щоб це працювало. Ви не згадуєте про те, що ви створюєте веб-сайт IIS (у розділі Сервер> Сайти). Чи не треба? Чи використовуєте Ви веб-сайт за замовчуванням / DefaultAppPool? Якщо так, то що ви вказуєте як корінь веб-сайту? Також: Як я можу знати, що DLL працює? Файли .py під Http ніколи не компілюються, тому я не думаю, що запити обробляються Python / Django.
Ерік Лейбенгут

1

Ви знайдете докладний посібник, як встановити Django на IIS8 всередині цього повідомлення в блозі:

Встановлення Django в IIS: Покроковий посібник

Коротше кажучи, ці кроки потрібно зробити:

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

Сподіваюся, що це допомагає!


0

Інший варіант - використовувати django-windows-інструменти, хоча він не оновлювався за пару років. Він просто встановлює модуль FastCGI в IIS для вас, так що вам не доведеться турбуватися про використання PyISAPIe.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.