Решил попробовать установить Django на пощупать.
Нарыл книжку «Django. Разработка веб-приложений на Python», почитал интернет-ресурсы. Стал устанавливать. Система Debian.
Установил пакеты с Апачем2, Питоном, базовый Django. Подключение к апачу делаю, согласно рекомендациям, через WSGI. Мне необходимо установить проект в директорию /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
3. В каталог /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()
4. Настроил виртуальных хост local_libretag.ru.
Содержимое файла /etc/apache2/sites-enabled/local_libretag.ru.conf:
<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>
Вот, в принципе и все. Перезагрузил апач2, открываю урл:
local_libretag.ru
И вижу ошибку:
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
То есть, Питон по WSGI подключился и вызывается. Django установлен и вроде как работает. Но тиолько не так как надо.
В файле /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? Как избавиться от вышеприведенной ошибки?