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

Джанго, WSGI, Py. какая разница?

Я пытаюсь запустить приложение django в моей системе cpanel. Я установил mod_wsgi и следую руководству здесь: http://www.nerdydork.com/setting-up-django-on-a-whm-cpanel-vps-liquidweb.html

Однако сейчас я сбит с толку, так как не знаю, что делать дальше. В приложении есть файлы .py, и я могу запустить его с помощью этого: python manage.py runserver 211.144.131.148:8000

Однако это через командную строку и привязку к порту 8000. Вместо этого я хочу использовать Apache.

Вопрос в том, что в этом руководстве не говорится о том, как заставить apache распознавать файлы .py и запускать приложение так, как я хочу. Что мне делать дальше?

Если вы используете mod_wsgi, вы не хотите, чтобы Apache распознал ваш .py файлы. Непонятно, не правда ли? Позвольте мне объяснить ...

Модуль WSGI обеспечивает своего рода взаимосвязь между Apache и вашими процессами Python. Это стандартизированный интерфейс шлюза (интерфейс шлюза веб-сервера), так сказать.

Вот официальная документация Django по настройке Django 1.1 с Apache & mod_wsgi.

Как правило, вам просто нужно:

WSGIScriptAlias / /path/to/mysite/apache/django.wsgi

И затем вам нужно будет определить приложение WSGI, которое будет служить передней частью вашего приложения Django:

import os
import sys

os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

* Обратите внимание, что я взял эти примеры из документа по ссылке выше.

Теперь это подключает Apache к приложению WSGI, а затем связывает ваше приложение с этим приложением WSGI. Строка WSGIScriptAlias ​​просто указывает apache отправлять все запросы с '/' или ниже в ваше приложение WSGI, которое будет управлять маршрутизацией URL-адресов.

Обычно я выполняю подобные развертывания с использованием FastCGI и модуля Python flup, который немного сложнее, но стоит проверить, есть ли у него время.