Относительно краткое руководство по быстрому развертыванию LAMP сервера для разработки Django приложений.
Компоненты LAMP: Linux + Apache + MySQL + Python.
Будем ставить: Apache 2, MySQL + PhpMyAdmin, Django, WSGI (Python 2.7 в Ubuntu 11.04 устанавливается по умолчанию).
Установка и настройка по шагам:
1. Ставим Apache 2 + mod-WSGI
$ sudo apt-get install apache2 libapache2-mod-wsgi
Проверяем через броузерhttp://localhost
2. Ставим MySQL + PhpMyAdmin
$ sudo apt-get install mysql-server mysql-client python-mysqldb
Для управления базами данных ставим phpmyadmin$ sudo apt-get install phpmyadmin
Для его работы нужен php. Ставим php$ sudo apt-get install php5 libapache2-mod-php5
Делаем символьную ссылку$ sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin.conf
Перегружаем Apache$ sudo /etc/init.d/apache2 restart
Проверяем через броузерhttp://localhost/phpmyadmin
3. Ставим «свежую» версию Django
Для этого качаем последнюю стабильнюу версию Django отсюда:
Разархивируем и запускаем установку из папки Djangohttps://www.djangoproject.com/download/
$ sudo python setup.py install
Проверяем$ python -c "import django; print django.VERSION;"
Должны получить данные о версии Django в виде(1, 3, 0, 'final', 0)
4. Для проверки и настроек делаем проект test_project
создаем директорию для django проектов
$ mkdir -p /home/myuser/django-projects/
(myuser — ник пользователя с доступом)
создаем django-проект
$ cd /home/myuser/django-projects/
$ django-admin.py startproject test_project
корректируем название модуля для корректного импорта
$ sudo perl -pi -e 's/test_project.urls/urls/g' test_project/settings.py
директория для настроек wsgi
$ mkdir -p /home/myuser/django-projects/test_project/deploy
директории для статики
$ mkdir -p /home/myuser/django-projects/test_project/public
$ mkdir -p /home/myuser/django-projects/test_project/public/static
делаем символическую ссылку на статику админки Django
$ sudo ln -s /usr/local/lib/python2.7/dist-packages/django/contrib/admin/media /home/myuser/django-projects/test_project/public/static/admin
директория для логов
$ mkdir -p /home/myuser/django-projects/test_project/logs
5. Настраиваем виртуальный хост в Apache
С помощью редактора (vim, или nano или geany) создаем файл test_project с настрками виртуального хоста в папке /home/myuser/django-projects/test_project/deploy/
В файле пишем настройки вируального хоста
<VirtualHost 127.0.1.2:80>
# Описание сервера
ServerAdmin admin@test_project
ServerName test_project
# Логи
ErrorLog /home/myuser/django-projects/test_project/logs/error_log
CustomLog /home/myuser/django-projects/test_project/logs/access_log common
# wsgi-обработчик (см. ниже)
WSGIScriptAlias / /home/myuser/django-projects/test_project/deploy/django.wsgi
# Параметры запуска wsgi (myuser — ник пользователя с доступом)
WSGIDaemonProcess myuser-site user=myuser group= myuser home=/home/django-projects/test_project/ \
processes=2 threads=4 maximum-requests=100 display-name=apache-myuser-wsgi
WSGIProcessGroup myuser-site
# Статические файлы django-админки
Alias "/static/admin/" "/home/myuser/django-projects/test_project/public/static/admin"
<Location "/media_admin/">
SetHandler None
</Location>
# Статические файлы проекта
Alias "/static/" "/home/myuser/django-projects/test_project/public/static/"
<Location "/public/static/">
SetHandler None
</Location>
</VirtualHost>
6. Настраиваем WSGI
C помощью редактора создаем файл django.wsgi и пишем в него следующее
#/usr/bin/python
# -*- coding: utf-8 -*-
import os, sys
sys.path.append("/home/myuser/django-projects/test_project/")
# В python path добавляется директория проекта
dn = os.path.dirname
PROJECT_ROOT = os.path.abspath( dn(dn(__file__)) )
DJANGO_PROJECT_ROOT = os.path.join(PROJECT_ROOT, 'test_project')
sys.path.append(DJANGO_PROJECT_ROOT)
# Установка файла настроек
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
# Запуск wsgi-обработчика
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
7. Включаем виртуальный хост
Добавляет ссылку на виртуальный хост в список доступных хостов
$ sudo ln -s /home/myuser/django-projects/test_project/deploy/test_project /etc/apache2/sites-available/test_project
Включаем виртуальный хост
$ sudo a2ensite test_project
Добавляем в файл /etc/hosts (прва должны быть root)
127.0.1.2 test_project
перегрузка и рестарт Apache
$ sudo /etc/init.d/apache2 reload
$ sudo /etc/init.d/apache2 restart
Проверяем через броузер
http://test_project или http://127.0.1.2
Сервер LAMP для разработки на Django готов.
Источники:
1.
2.
Другие статьи об установке Django:
- FirstVDS: Debian 7 Wheezy + NGINX + Django и другие
- Django + Apache2 + Nginx + mod_wsgi на FirstVDS
- Debian 7 Wheezy + NGINX + UWSGI + Viartualenv + Django
- Django + WAMP без суеты
Комментарии
Стоило столько трудится, чтобы на строчке "включаем виртуальный хост" получить "Site does not exist!"
Аффтар, я тебя ненавижу.
сказал индус и женился на обезьяне. ;о)
Что что-нибудь поярче бы (
Рецепт написан 5!!! лет назад.
Советую воспользоваться более свежим рецептом на базе NGIX + Debian.
А вообще: Ошибок боятся - в Linux не ходить. )))