Установка Django в Ubuntu

В принципе, установка джанги в убунте мало отличается от установки её же в других linux-системах. И всё же отличия имеются и вполне способны сбить с толку новичка, не привыкшего к линуксу.

В процессе установки предполагается, что вы собираетесь создать сайт с именем www.mysite.com, код которого будет находиться в папке /var/www/mysite.

Для начала нам необходимо установить Apache 2 и nginx. Apache будет заниматься выдачей динамического контента, ну а nginx, соответственно, статического. Индейца проще всего установить через Synaptic, сразу добавив пакеты для Python 2.6 (внимание: django пока не поддерживает Python 3!) и другие, если они вам требуются. nginx устанавливаем так:

Настройкой займёмся чуть позже, а пока поставим mod_wsgi для apache:

Пора настроить установленное. Тушим nginx и apache

Создаём файл /etc/nginx/site-enabled/mysite.conf со следующим содержимым:

Как видно из текста, nginx у нас слушает 80 порт, а apache надо будет подвесить на 81-й. Делается это для того, чтобы nginx мог перехватить обращение к статическим данным (у нас это картинки, css и js-скрипты).

Теперь так же создаём файл /etc/apache2/site-enabled/mysite.conf :

У меня в системе не было пользователя apache/apache и потому пришлось указать своего. Сразу скажу, что root/root он не примет. 😉

Ещё надо сменить порт apache в /etc/apache2/ports.conf :

Устанавливаем саму django. Для этого нам надо скачать архив с оф.сайта, распаковать и запустить установку.

Копируем файл /usr/local/lib/python2.6/dist-packages/django/bin/django-admin.py в /var/www. Переходим в /var/www и создаём django-проект для своего сайта:

Создаём файл /var/www/mysite/django.wsgi :

Стартуем nginx и apache, а затем тестовый сервер django:

Открываем браузер и вводим в адресной строке http://127.0.0.1:8000/. Если нигде не допустили ошибок, то нам должна показаться приветственная страничка пустого проекта django с сообщением, что «усё работает». Теперь можно работать над проектом и проверять, что получилось.

Насчёт apache. Хотя мы и установили apache с nginx, но проверяем мы почему-то на тестовом сервере самой джанги. Во-первых, с ним проще, т.к. после каждой правки апач придётся перезапускать, что не особенно удобно в процессе разработки. А во-вторых, для отображения вашего django-проекта в apache надо, чтобы он был связан с реальным доменом (на 127.0.0.1 и localhost проект не среагирует с указанными настройками). При желании можно поправить конфиги или прописать в DNS свой тестовый домен, но это уже отдельная тема.

P.S. Спасибо камраду detect за его помощь и терпение. 😉

One comment

  1. полезная статейка. сэкономил уйму времени.
    но столкнулся с одной проблемкой:

    Request Method: GET
    Request URL: http://my_real_ip/
    Django Version: 1.2.1
    Python Version: 2.6.5
    ……
    Traceback:
    File «/usr/local/lib/python2.6/dist-packages/django/core/handlers/base.py» in get_response
    91. request.path_info)
    File «/usr/local/lib/python2.6/dist-packages/django/core/urlresolvers.py» in resolve
    214. for pattern in self.url_patterns:
    File «/usr/local/lib/python2.6/dist-packages/django/core/urlresolvers.py» in _get_url_patterns
    243. patterns = getattr(self.urlconf_module, «urlpatterns», self.urlconf_module)
    File «/usr/local/lib/python2.6/dist-packages/django/core/urlresolvers.py» in _get_urlconf_module
    238. self._urlconf_module = import_module(self.urlconf_name)
    File «/usr/local/lib/python2.6/dist-packages/django/utils/importlib.py» in import_module
    35. __import__(name)

    Exception Type: ImportError at /
    Exception Value: No module named affsys.urls

Leave a Reply

Ваш e-mail не будет опубликован. Обязательные поля помечены *