Ставим LAMP для разработки на рабочей станции Ubuntu 11.04

5646 4

Относительно краткое руководство по быстрому развертыванию 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 отсюда:

https://www.djangoproject.com/download/
Разархивируем и запускаем установку из папки Django
$ 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. Django – среда обитания 
2. Установка и настройка Apache, mod_wsgi, Django, MySQL в Debian / Ubuntu

 

Другие статьи об установке Django:

- FirstVDS: Debian 7 Wheezy + NGINX + Django и другие
Django + Apache2 + Nginx + mod_wsgi на FirstVDS
Debian 7 Wheezy + NGINX + UWSGI + Viartualenv + Django
Django + WAMP без суеты

 

Комментарии

26 сентября 2016 г. 20:10 owlman
Сочувствую!
Рецепт написан 5!!! лет назад.
Советую воспользоваться более свежим рецептом на базе NGIX + Debian.
А вообще: Ошибок боятся - в Linux не ходить. )))
26 сентября 2016 г. 17:51 Преподобный
блджад...
Стоило столько трудится, чтобы на строчке "включаем виртуальный хост" получить "Site does not exist!"
Аффтар, я тебя ненавижу.
20 мая 2012 г. 20:16 owlman
У каждого свой вкус,
сказал индус и женился на обезьяне. ;о)
20 мая 2012 г. 18:05 Menelom
Да...дизайн явно надо было бы сменить:)
Что что-нибудь поярче бы (

Контактные данные

 Россия, г. Москва