Запуск Django с использованием mod_wsgi
После недавнего окончания разработки первого своего сайта на Django, пришло время его выставлять в свет
Для этого на VPS, где крутился Apache2, был установлен mod_wsgi. Чтобы заставить работать Django сайт с mod_wsgi, надо лишь немного поправить конфиг Apache для вашего виртуального хоста, и написать небольшой скрипт. В моем примере, сайт будет лежать в /var/www/domain.net/www/ . Такая вложенность получилась не просто так, при попытке запуска сайта из /var/www/domain.net, я ловил ошибку о ненахождении модулей
Первое что сделаем, изменим запись о хосте. Открываем файл, где прописаны настройки виртуального хоста и добавляем:
; ServerAdmin aliens@it4it.ru ServerName domain.net ServerAlias www.domain.net DocumentRoot /var/www/domain.net/www CustomLog /var/log/apache2/domainl-access.log combined ErrorLog /var/log/apache2/domain-error.log #вот этой стрчокой прописываем алиас до вашей статики в виде: /урл_статики /папка_статики Alias /static/ /var/www/domain.net/www/media/ #настройки wsgi, от чьего имени запускать и количество запросов и потоков WSGIProcessGroup aliens WSGIDaemonProcess aliens user=aliens group=www-data threads=2 maximum-requests=1000 #путь до скрипта, который будет запускать наш джанго проект WSGIScriptAlias / /var/www/domain.net/www/django.wsgi #алиас до статики для админки Alias "/media/" "/var/lib/python-support/python2.5/django/contrib/admin/media/" <Location "/media/"> SetHandler None </Location> <Directory /var/www/akoval.net/www/media> Order deny,allow Allow from all </Directory>
После этого, создаем и редактируем файл /var/www/domain.net/www/django.wsgi с таким содержимым:
import sys import os import os.path sys.path.insert(0, os.path.dirname(__file__)) os.environ['DJANGO_SETTINGS_MODULE'] = 'settings' from django.core.handlers.wsgi import WSGIHandler application = WSGIHandler()
Все, после этого проверить права на файлы, и можно перезапускать Apache и проверять работоспособность сайта.
Хочу предупредить, после любого изменения файлов сайта, надо перезагрузить Apache

