ГлавнаяРегистрацияВходВ закладки

Главная » Статьи » CentOS » MySQL
Django Apache mod_wsgi
Автор: admin  Раздел: MySQL
Django+Apache+mod_wsgi

Этот пост покажет вам, как установить Django на CentOS 5.5.

буду Naedyatsya, ,что Apache на вашем сервере уже установлен (вы должны убедиться, ,что Apache был собран с модулем mod_rewrite, если нет, то восстановить с помощью ключа включите-переписать), так ,что давайте прямо к установке питона. Я думаю, все знают (один раз собрал множество), ,что Django является основой для питона и так как мы собираемся установить последнюю версию на данный момент, мы должны Django Python 2.6 или 2.7

Установка:

[-hide-]Для начала, добавим репозиторий Epel и установим нужные модули для работы python(установку провожу для платформы i386)

Code:
rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm

yum update
yum install zlib.i386 zlib-devel.i386 sqlite-devel.i386 gdbm-devel.i386 gdbm.i386 readline.i386 readline-devel.i386 tkinter.i386 tkinter26.i386 cdk.i386 cdk-devel.i386 -y

Теперь перейдем к установке python2.7 непосредственно(для сборки python2.7 на платформе x86_64 инструкция установки ниже):

Скачать python2.7 можно пройдя по следующей ссылке: http://www.python.org/ftp/python/2.7.1/Python-2.7.1.tgz

Сборки python2.7 на платформе i386:

Code:
cd /usr/local/src/
wget http://www.python.org/ftp/python/2.7.1/Python-2.7.1.tgz
tar xzvf Python-2.7.1.tgz
cd Python-2.7.1
./configure

по дефолту соберет в /usr/local

Code:
make
make install

При сборке конфигурационных файликов(на этапе команды make) выскочит следующее сообщение:

Code:
Python build finished, but the necessary bits to build these modules were not found:
_bsddb             _curses            _curses_panel
_sqlite3           _tkinter           bsddb185
bz2                dbm                dl
gdbm               imageop            sunaudiodev


глобально эти модули на самом python не отобразится поэтому я продолжаю сборку и выполняю команду «make install«, желающие же могут попробовать установить недостающие модули и пересобрать python заново

Сборка python2.7 на платформе x86_64(собирать только так иначе не сможете собрать mod_wsgi как «shared» модуль к Apache):

Code:
./configure --enable-shared
make
make install

echo "/usr/local/lib" > /etc/ld.so.conf.d/python2.7.conf
ldconfig
Как только python2.7 установлен можно переходить к установки самого Django непосредственно:

Django 1.3 версии можно скачать пройдя по ссылке: http://www.djangoproject.com/download/1.3/tarball/

Code:
cd /usr/local/src/
wget http://www.djangoproject.com/download/1.3/tarball/
tar xzvf Django-1.3.tar.gz
cd Django-1.3
/usr/local/bin/python2.7 setup.py install

Собственно после этого установка Django завершена, давайте проверим все ли прошло корректно:

Вызываем интерпретатор python2.7 , для этого из-под рута запускаем путь к бинарнику python2.7:

Code:
[root@MOZG Django-1.3]# /usr/local/bin/python2.7
Python 2.7.1 (r271:86832, May 23 2011, 10:22:53)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-50)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
 
>>> import django
 
>>> print django.get_version()
1.3

Как видим, отдается корректная версия Django, ,что означает ,что этот python модуль был установлен правильно, теперь переходим к настройке Apache c Django и соответствующим модулем Apache mod_wsgi

Возможно mod_wsgi у кого-то уже установлен, но к сожалению он был собран для дефолтной версии python2.4 ,что нам не подходит, поэтому нам нужно пересобрать этот модуль используя ранее установленный python2.7

Итак, скачиваем модуль mod_wsgi используя ссылку http://modwsgi.googlecode.com/files/mod_wsgi-3.3.tar.gz

Code:
cd /usr/local/src/
wget http://modwsgi.googlecode.com/files/mod_wsgi-3.3.tar.gz
tar xzvf mod_wsgi-3.3.tar.gz
cd mod_wsgi-3.3

Теперь ,чтобы собрать модуль как «shared» нам нужно указать прямой путь к apxs(Apache APR) и путь к бинарнику python2.7, по дефолту путь к apxs должен подтягиваться сам, поэтому я его не указываю

Code:
./configure  --with-python=/usr/local/bin/python2.7
make
make install

Мы собрали mod_wsgi как «shared» модуль к Apache, теперь нужно подгрузить модуль в самом конфе, для этого просто нужно добавить следующую строчеку к конфигурационный файлик Apache:

Code:
LoadModule wsgi_module modules/mod_wsgi.so

Переподгружаем Apache и проверяем список всех модулей Apache(встроенных и подгруженных) следующей командой:

Code:
httpd -M

ищем следующий модуль: wsgi_module (shared)

если вдруг команда «httpd -M» не работает Вам нужно или явно указывать путь к этому бинарнику Apache(у меня это /usr/local/apache/bin/httpd) или же просто скопировать или сделать символический линк из этого файлика в директорию /usr/sbin

Итак модуль wsgi_module установлен и распознается Apache теперь перейдем к настройке Django:

Добавляем юзера из-под которого будем подымать проект Django:

Code:
adduser francuz
cd /home/
chmod 711 francuz
cd /home/francuz/
mkdir public_html
cd public_html/
touch .htaccess django.wsgi

Файлик .htaccess:

Code:
DirectoryIndex django.wsgi
AddHandler wsgi-script .wsgi
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /django.wsgi/$1 [QSA,PT,L]

Файлик django.wsgi:
Code:
#!/usr/local/bin/python2.7
import os, sys
sys.path.append('/home/francuz/public_html')
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

Теперь создадим проект Django, находясь в /home/francuz/public_html выполните следующую команду:

Code:
/usr/local/bin/django-admin.py startproject mysite
cd ../..
chown -R francuz: *

Теперь перейдем к настройке VirtualHost для созданного юзера:

У меня «голый» Apache и к сожалению никакого домена я еще сюда не направил, поэтому подымать Django буду из-под главного IP адреса:

В самый низ конфа Apache добавляем следующие записи:

Code:
Options Indexes ExecCGI FollowSymLinks
AllowOverride All
Allow from all
DocumentRoot /home/francuz/public_html

Сохраняем и переподгружаем Apache, идем в браузер и вбиваем IP адрес Вашего серверы, должно получится следующее:

Теперь просто нужно создать БД с соответствующим пользователем и паролем и прописать их настройки в файликике

Code:
/home/francuz/public_html/mysite/settings.py

и после этого находясь в директории /home/francuz/public_html/mysite/ запустить команду которая создаст супер-пользователя Django Вашего проекта и создаст нужные таблицы в БД:

Code:
cd /home/francuz/public_html/mysite/
/usr/local/bin/python2.7 manage.py syncdb
[-hide-]
Просмотров: 4364
Дата: 2011-07-13 15:54:43
Комментариев: 0
Источник: