Я пытаюсь запустить приложение 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, который немного сложнее, но стоит проверить, есть ли у него время.