В прошлом я пытался запустить Django под IIS 8 в Windows 8 Developer Preview. Теперь, когда вышла Consumer Preview для Windows 8, мне было интересно, могу ли я получить подробные инструкции по настройке Django в IIS.
Как мне подойти к этому процессу - я не знаю, с чего начать. Нужен ли мне конкретный модуль ISAPI?
Этот процесс не совсем тривиальный, но его можно выполнить, выполнив следующие действия:
Сначала скачайте и установите Python 2.6. (Причина, по которой я предлагаю Python 2.6 вместо Python 2.7, заключается в том, что последней версией Python, поддерживаемой модулем PyISAPIe, является Python 2.6.) Запишите место, в которое вы устанавливаете Python (C:\Python26
по умолчанию, если я правильно помню).
Щелкните правой кнопкой мыши Компьютер и выберите Свойства. Щелкните Дополнительные параметры системы слева.
Щелкните вкладку «Дополнительно», а затем нажмите кнопку «Переменные среды». Найдите путь в нижнем списке:
Нажмите кнопку «Изменить ...», перейдите к концу «Значение переменной» и вставьте ;C:\Python26
(точка с запятой плюс путь, по которому вы установили Python):
Щелкните OK, чтобы закрыть все диалоговые окна.
Затем загрузите последнюю версию PyISAPIe Вот. Распакуйте куда-нибудь содержимое архива и откройте каталог.
Затем откройте Панель управления, щелкните «Программы и компоненты», а затем щелкните «Включение или отключение компонентов Windows» слева.
Перейдите к Internet Information Services -> World Wide Web Services -> Application Development Features, а затем убедитесь, что установлен флажок ISAPI Extensions.
Примените изменения и откройте диспетчер IIS. Дважды щелкните значок Сопоставления обработчиков.
Нажмите "Добавить сопоставление модулей" справа. В появившемся диалоговом окне введите следующую информацию:
PyISAPIe.dll
]
Это должно выглядеть примерно так:
Перед закрытием диалогового окна нажмите «Ограничения запроса», снимите флажок «Вызывать обработчик, только если запрос сопоставлен с:» и нажмите «ОК». Также нажмите OK, чтобы закрыть диалоговое окно «Добавить отображение модуля» (нажмите «Да», если вас спросят, хотите ли вы добавить расширение с разрешенной записью в список ограничений ISAPI и CGI).
Следующим шагом будет загрузка Джанго. Извлеките куда-нибудь содержимое архива (отметив место). Откройте командную строку (вы можете сделать это, нажав Выиграть + р, печатая cmd
и ударяя Войти) и введите cd
за которым следует место, куда вы извлекли Django:
Нажмите Войти, тип cd dj
, а затем нажмите Вкладка. Это должно завершить путь к папке Django, и вы можете нажать Войти , чтобы открыть каталог. Теперь введите python setup.py install
:
Теперь вам нужно создать проект Django. Для примера мы создадим проекты под C:\Django
. В командном окне введите следующие команды, а затем Войти:
cd C:\
mkdir Django
cd Django
python C:\Python26\Lib\site-packages\django\bin\django-admin.py startproject test
Это создает проект под названием «test».
После успешного завершения процесса последняя оставшаяся задача - подключить 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='/')
Скопируйте каталог Http в C:\Python26\Lib\site-packages
(или соответствующий каталог, если вы установили Python где-то еще).
Перезагрузите IIS (вы можете сделать это, нажав «перезагрузить» в правой части IIS Manager):
Если все работает правильно, вы сможете перейти к http: // localhost чтобы просмотреть свой новый сайт Django:
Дальнейшие примечания и дополнения
С тех пор я сам скомпилировал PyISAPIe для Python 2.7 (как 32-разрядный, так и 64-разрядный) и загрузил файлы сюда: http://www.box.com/s/a5fb1b21fcdf738d2590
На шаге № 6 вам необходимо убедиться, что pyisapie.dll
находится в каталоге, к которому IIS имеет хотя бы доступ для чтения. Несоблюдение этого правила приведет к странным ошибкам.
Вы найдете подробное руководство по установке Django на IIS8 в этом сообщении блога:
Установка Django в IIS: пошаговое руководство
Короче говоря, нужно сделать следующие шаги:
Надеюсь, это поможет!
Другой вариант - использовать django-windows-tools, хотя он не обновлялся пару лет. Он просто настраивает модуль FastCGI в IIS, поэтому вам не нужно беспокоиться об использовании PyISAPIe.