Настройка Django+Tornado+Nginx под Windows. Часть 1
Глава 1. Введение.
Раннее уже была написана серия статей про поднятие серверов для django проектов, но на сегодняшний день они уже далеко не актуальны.
Кому интересно:
Установка сервера Apache+…..+Django Part_1
Установка сервера Apache+…..+Django Part_2
Сейчас думаю самым удачным вариантом для разворачивания “боевого” django проекта является связка Tornado+Nginx. Её сегодня и будем ставить.
Что это такое и как работает:
Tornado - это неблокирующий, высоко производительный веб-сервер с открытыми исходным кодом. Сервер написан на языке Python и без проблем выдерживает несколько тысяч одновременных подключений.
Nginx - маленький но очень быстрый веб-сервер, думаю с ним вы уже знакомы.
Django - фреймворк для веб-приложений на языке Python
Это все будет работать по нашей любимой схеме frontend - backend:
frontend - nginx, передаёт все соединения, кроме статических файлов, на backend. Просто отдаёт статику.
backend - tornado + django
По запуску Tornado+Nginx под linux написано очень много и трогать єту тему не будем. Мы же займёмся установкой этой чудесной связки под винду. Крайне не рекомендую ставить рабочие проекты под Windows(тем более под XP:-)). Вы спросите зачем тогда это все?? Ответ простой, для самобичевания и мозгодробления ))).
Для большей реалистичности эксперименты будут проводится над django приложением OSQA(качать по ссылке ниже). OSQA - это Open Source система построения Q&A(Вопросы и ответы) сообществ.
Понадобиться:
1. Windows
2. Python 2.6 или 2.7
3. Dajngo
4. Tornado
5. NIMPix 1.2.0 RC2
6. OSQA
7. Консоль
В статье подразумевается ,что у вас уже установлены :
1. Windows
2. Python
2.0 djаngo
2.1 markdown
2.2 html5lib
2.3 south
2.4 python-openid
2.5 setuptools
3. NIMPix
процесс их установки не описан. Сервер NIMPix находится на диске С:\
Глава 2. Установка и настройка OSQA
Внимание если у вас версия django выше 1.3 то OSQA работать не будет. Рекомендовано django 1.2 на 1.3(с плясками).
1. Создать папку apps в С:\nimpix в ней папку osqa. Здесь будет находиться наш сайт вопросов и ответов.
2. Распаковать все файлы из архива OSQA в эту папку.
3. Запускам Mysql и Nginx на NIMPix
4. Созадем Mysql базу с названием osqa
5. Проверяем все ли нужные модули Python установлены. Для этого в консоли пишем
python
открывается интерпретатор в нем вводим
>>> help(’modules’)
Найдите в появившемся списке такие модули django, html5lib, south, markdown, openid. Если одного из них нет то необходимо его установить т.к. все они нужный для работы OSQA.
Для этого :
1. Ставим setuptools http://pypi.python.org/pypi/setuptools или distribute http://pypi.python.org/pypi/distribute. Рекомендую distribute, но я пользуюсь setuptools(по привычке).
2. Ставим Если у вас не прописан в PATCH путь до каталога site-packages, то пишите как написано ниже.
“C:\Program Files\Python27\Lib\site-packages\easy_install.py” django
“C:\Program Files\Python27\Lib\site-packages\easy_install.py” markdown
“C:\Program Files\Python27\Lib\site-packages\easy_install.py” html5lib
“C:\Program Files\Python27\Lib\site-packages\easy_install.py” south
“C:\Program Files\Python27\Lib\site-packages\easy_install.py” python-openid
Если же у вас этот путь есть то будет достаточно просто easy_install ….. , без указания полного пути.
Переходим к настройке OSQA.
1. !!!ВНИМАНЕ!!!Для тех у кого django 1.3
в С:\nimpix\apps\osqa\forum\utils\html.py строку
from django.template import mark_safe
меняем на
from django.utils.safestring import mark_safe
в C:\nimpix\apps\osqa\forum\urls.py
вместо
url(r’^%s(.*)’ % _(’nimda/’), admin.site.root),
должно быть так
url(r’^%s’ % _(’nimda/’), include(admin.site.urls)),
2. Открываем С:\nimpix\apps\osqa\settings_local.py и настраиваем подключение к БД
DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.mysql’,
‘NAME’: ‘osqa’,
‘USER’: ‘root’,
‘PASSWORD’: ‘J8uv01Bq431j’,
‘HOST’: ”,
‘PORT’: ”,
}
}
3. Создаём базу данных и все такое.
С:\nimpix\apps\osqa\manage.py syncdb –all
!!!При запросе супер пользователя НЕ СОЗДАЁМ!!!
С:\nimpix\apps\osqa\manage.py migrate forum –fake
