Блог gigimon'а

Запуск 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/"

        SetHandler None



        Order deny,allow
        Allow from all

После этого, создаем и редактируем файл /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

2008 — 2018