Как настроить Django на Apache2 + WSGI? - Python
Формулировка задачи:
Решил попробовать установить Django на пощупать.
Нарыл книжку "Django. Разработка веб-приложений на Python", почитал интернет-ресурсы. Стал устанавливать. Система Debian.
Установил пакеты с Апачем2, Питоном, базовый Django. Подключение к апачу делаю, согласно рекомендациям, через WSGI. Мне необходимо установить проект в директорию
В результате в каталоге
3. В каталог
4. Настроил виртуальных хост local_libretag.ru.
Содержимое файла /etc/apache2/sites-enabled/local_libretag.ru.conf:
Вот, в принципе и все. Перезагрузил апач2, открываю урл:
local_libretag.ru
И вижу ошибку:
Полез в логи апача. В файле
То есть, Питон по WSGI подключился и вызывается. Django установлен и вроде как работает. Но тиолько не так как надо.
В файле
Я пробовал ее заменять на:
и на:
- толку никакого, все те же ошибки и в окне браузера и в логе.
/app
виртуального хоста local_libretag.ru. Последовательность моих действий: 1. Сделал директорию/var/www/libretag
2. Выполнил в этой директории команду:
Листинг программы
- django-admin startproject app
/var/www/libretag
появилось следующее дерево:
Листинг программы
- DIR app
- +-- DIR app
- +-- __init__.py
- settings.py
- urls.py
- wsgi.py
- manage.py
/var/www/libretag/app
поместил файл django.wsgi следующего содержания:
Листинг программы
- import os
- import sys
- sys.path.append('/var/www/libretag/app')
- os.environ['DJANGO_SETTINGS_MODULE'] = 'app.settings'
- import django.core.handlers.wsgi
- application = django.core.handlers.wsgi.WSGIHandler()
Листинг программы
- <VirtualHost *:80>
- ServerName local_libretag.ru
- ServerAlias www.local_libretag.ru
- DocumentRoot "/var/www/libretag"
- <Directory "/var/www/libretag">
- allow from all
- Options +Indexes
- AllowOverride all
- </Directory>
- Alias /media/ "/var/www/libretag/app/media"
- WSGIScriptAlias / /var/www/libretag/app/django.wsgi
- </VirtualHost>
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator at [no address given] to inform them of the time this error occurred, and the actions you performed just before this error.
More information about this error may be available in the server error log.
/var/log/apache2/error.log
обнаружились записи:
Листинг программы
- Internal Server Error: /
- Traceback (most recent call last):
- File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py", line 92, in get_response
- response = middleware_method(request)
- File "/usr/lib/python2.7/dist-packages/django/middleware/common.py", line 57, in process_request
- host = request.get_host()
- File "/usr/lib/python2.7/dist-packages/django/http/request.py", line 72, in get_host
- "Invalid HTTP_HOST header (you may need to set ALLOWED_HOSTS): %s" % host)
- SuspiciousOperation: Invalid HTTP_HOST header (you may need to set ALLOWED_HOSTS): local_libretag.ru
/var/www/linuxtrash/app/app/settings.py
есть строка:
Листинг программы
- ALLOWED_HOSTS = []
Листинг программы
- ALLOWED_HOSTS = ['*']
Листинг программы
- ALLOWED_HOSTS = ["http://local_libretag.ru/", "http://local_libretag.ru", "local_libretag.ru/", "local_libretag.ru"]
Вопрос. Как все-таки настроить Django? Как избавиться от вышеприведенной ошибки?
Решение задачи: «Как настроить Django на Apache2 + WSGI?»
textual
Листинг программы
- ALLOWED_HOSTS = ['*']
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д