Установка Django,mod_wsgi под управлением Apache на Centos 5

Перед установкой CMS Django убедитесь, что Apache на сервере был уже установлен (Apache должен быть собран с поддержкой модуля mod_rewrite, если нет, то необходимо пересобрать его с ключом — enable-rewrite).

Затем устанавите сам python:

1) Добавьте репозиторий Epel и установите необходимые модули для работы python (в примере установка проводится для платформы i386)

 

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

 

2) Сборка python2.7

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

 

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/

make

make install

 

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

 

./configure --enable-shared

make

make install

echo "usr/local/lib" > /etc/ld.soconf.d/python2.7.conf

ldconfig

 

3) После установки python2.7, переходите к инсталяции Django

 

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

 

4) Это является завершающим этапом установки Django. После установки проверьте, все ли прошло корректно.

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

 

/usr/local/bin/python2.7
Python 2.7.1 (r271:86832, Jan 17 2012, 11:42:24)
[GCC 4.4.6 20110731 (Red Hat 4.4.6-3)] 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

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

 

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», необходимо прописать путь к бинарнику python2.7 и к apxs(Apache APR), при настройках по дефолту путь к apxs подтягивается сам:

 

./configure --with-python=/usr/local/bin/python2.7

make

make install

 

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

 

Apache:

LoadModule wsgi_module modules/mod_wsgi.so

 

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

 

httpd -M

искать нужно следующий модуль: wsgi_module(shared)

 

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

Если wsgi_module установлен и Apache распознает его, то можете начать настраивать Django.

6) Добавьте юзера из-под которого будете поднимать проект Django:

 

adduser francuz

cd /home/

chmod 711 francuz

cd /home/francuz/

mkdir public_html

cd public_html/

touch .htaccess django.wsgi

 

Файл .htaccess:

 

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

 

Файл django.wsgi:

 

#!/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

Ввыполните следующую команду:

 

/usr/local/bin/django-admin.py startproject mysite

cd ../..

chown -R francuz: *

,где mysite- имя Вашего проекта(сайта).

 

Теперь перейдите к настройке VirtualHost для созданного юзера. Если Apache "голый" - необходимо поднимать Django из-под главного IP адрес^

Добавьте следующие строки:

 

Options Indexes ExecCGI FollowSymLinks

AllowOverride All

Allow from all

DocumentRoot /home/francuz/public_html

 

Сохраните и перезагрузите Apache, в браузер введите IP адрес Вашего сервера. После этих действий необходимо создать БД с соответствующим пользователем и паролем и прописать их настройки в файлике:

 

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

 

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

 

cd /home/francuz/public_html/mysite/

/usr/local/bin/python2.7 manage.py syncdb

  • webmoney
  • visa
  • privat
  • liqpay
  • non-cash
  • liberty