Для работы с Django необходимы http-сервер Apache и модуль к нему - mod-wsgi. Модуль mod_wsgi пришел на смену mod_python и в настоящее время рекомендуется авторами Django как наиболее подходящее решение для использования в реальных условиях.
Установка mod_wsgi тривиальна:
apt-get install libapache2-mod-wsgi
Необходимо создать wsgi-обработчик. Для этого в своем django проекте я создал каталоги
/home/django-trunk/dtest1/apache - для mod.wsgi-обработчика
../logs - для лог файлов apache
../css - таблицы стилей
../js - скрипты
../medi - для прочих статических файлов
Содержимое файла mod.wsgi:
import os, sys
sys.path.append('home/django-trunk')
os.environ['DJANGO_SETTINGS_MODULE'] = 'dtest1.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
Далее, чтобы код проекта отзывался на какой-либо URL-адрес, необходимо настроить виртуальный хост Apache. Необходимо создать новый файл /etc/apache2/sites-available/django-test1:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName django-test1.local
# статические файлы
Alias /media/ "/home/django-trunk/dtest1/media/"
<Location "/media">
SetHandler None
</Location>
Alias /css/ "/home/django-trunk/dtest1/css/"
<Location "/css">
SetHandler None
</Location>
Alias /js/ "/home/django-trunk/dtest1/js/"
<Location "/js">
SetHandler None
</Location>
Alias /pics/ "/home/django-trunk/dtest1/pics/"
<Location "/pics">
SetHandler None
</Location>
<Directory /home/django-trunk/dtest1/apache>
Order allow,deny
allow from all
</Directory>
# wsgi - обработчик
WSGIScriptAlias / /home/django-trunk/dtest1/apache/mod.wsgi
# WSGIDaemonProcess django-test1 processes=2 maximum-requests=5 threads=1
# WSGIProcessGroup django-test1
ServerSignature On
ErrorLog /home/django-trunk/dtest1/logs/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
#CustomLog "|/usr/sbin/rotatelogs /home/django-trunk/dtest1/logs/access.%y-%m-%d.log 86400" combined
CustomLog /home/django-trunk/dtest1/logs/access.log combined
</VirtualHost>
Дальше стандартные действия
# включаем виртуальный хост
a2ensite django-test1
# рестарт Apache
/etc/init.d/apache2 restart
Не забыть сделать запись в c:\Windows\..\hosts
Показаны сообщения с ярлыком apache. Показать все сообщения
Показаны сообщения с ярлыком apache. Показать все сообщения
вторник, 22 июня 2010 г.
Apache - создание виртуального хоста
В каталоге /etc/apache2/sites-available находятся файлы конфигурации хостов, а в /etc/apache2/sites-enabled находятся символические ссылки на файлы конфигурации /etc/apache2/sites-available, включенных хостов. Для того чтобы создать виртуальный хост, нужно создать конфигурационный файл и при помощи утилиты a2ensite создать символическую ссылку. А отключить хост можно утилитой a2..site.
Сделаем упрощённую версию /etc/apache2/sites-available/default, чтобы иметь backup default и убрать лишнее из файлов настроек хостов (просто скопируем этот шаблон под другим именем - simple-default).
В дальнейшем и будем использовать simple-default в качестве шаблона для других хостов.
После некоторых изменений я получил файл с таким содержанием:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/test
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/test>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ServerName test
ErrorLog /var/log/apache2/test-error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/test-access.log combined
</VirtualHost>
Перед тем как запустить apache, нужно включить нужные нам виртуальные хосты:
a2ensite test
Также чтобы можно было обратиться к хосту по имени, нужно добавить информацию о его адресе в c:\Windows\..\hosts
http://doc.3dn.ru/publ/14-1-0-63 - первоисточник
Сделаем упрощённую версию /etc/apache2/sites-available/default, чтобы иметь backup default и убрать лишнее из файлов настроек хостов (просто скопируем этот шаблон под другим именем - simple-default).
В дальнейшем и будем использовать simple-default в качестве шаблона для других хостов.
После некоторых изменений я получил файл с таким содержанием:
ServerAdmin webmaster@localhost
DocumentRoot /var/www/test
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/test>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ServerName test
ErrorLog /var/log/apache2/test-error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/test-access.log combined
</VirtualHost>
a2ensite test
Также чтобы можно было обратиться к хосту по имени, нужно добавить информацию о его адресе в c:\Windows\..\hosts
http://doc.3dn.ru/publ/14-1-0-63 - первоисточник
Подписаться на:
Сообщения (Atom)