вторник, 13 ноября 2012 г.

OpenServer и Django

1) OpenServer качаем, распаковываем куда нам хочется. Допустим мы его распаковали в папку "D:\Server\"

2) mod_wsgi (под python 2.7)  качаем, кладем его в папку сервера. Копируем файл "mod_wsgi-win32-ap22py27-3.3.so" в папку "D:\Server\modules\http\Apache-2.2.23\modules\" лучше его переименуем в "mod_wsgi.so", если необходимо чтобы было доступно для для других апачей, кладите этот файл в соответствующие папки "modules".

3) Puthon2.7(win32) качаем, устанавливаем, Допустим мы его поставили в папку "D:\Python27\". Так как ставим на Windows необходимо прописать в Переменных средах добавить в Path  "D:\Python27", перезагружаем комп, чтобы python можно было запустить в консоли.

4) Git качаем, что бы получить последнюю версию django. Ставим его. Запускаем GIT Bash, с этой консоли переходим в папку в которую мы скачаем django, я качаю в папку с python, в нем создаю папку install, мне так удобнее, качаю в эту папку все что ставлю для питона. На примере  того что ставили, будут соответствующий пути, например, выполним команду в GIT Bash что бы переместится в нужную папку "cd D:/Python27/install/" сразу окажемся в нужной папке. Выполним команду для скачивания "git clone https://github.com/django/django.git"

5) Django скачен, переходим в папку с django, в консоли запустим установку "python setup.py install", теперь проверим все ли установилось. Выполним с консоли python, затем выполним import django, потом django.VERSION, если все правильно должна появиться информация вроде этой "(1, 6, 'alpha', 0)".

Приступим к  настройке Apache.
Теперь нужно подключить mod_wsgi для этого открываем через OpenServer конфигурацию Apache находим где подключаются модули. Добавим следующую строку:

LoadModule wsgi_module modules/mod_wsgi.so

Запускаем OpenServer, если все сделали правильно, то он должен запуститься без ошибок.
Если ошибки, стоит проверить пути.

Нужно все проверить, для этого создадим пробный проект, в папке domains под именем dj.local  для того что бы Apache обрабатывал как нужно создать файл django.wsgi создайте его в этой папке. Я его скопировал текст от сюда.

Запишите в него:
# -*- coding: utf-8 -*-

# импортируем модуля языка, которые используются 
# в этом скрипте
import os, sys, site
# подключаем наш проект в путь python, если django.wsgi
# находится не в корне проекта, то надо указывать 
# полный путь до каталога проекта
sys.path.insert(0, os.path.dirname(__file__))
# подключаем виртуальное окружение проекта
site.addsitedir('D:\Python27\Lib\site-packages')
# указываем через переменную окружения 
# название модуля с конфигурацией проекта
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
# передаем управление проекту
from django.core.handlers.wsgi import WSGIHandler
application = WSGIHandler()


Для каждого проекта придется руками добавлять в хосты Apache следующую конфигурацию:

<VirtualHost %ip%:%httpport%>
ServerName "www.dj.local"
ServerAlias "dj.local"
DocumentRoot "D:/Server/domains/dj.local/"

# для статического содержимого добавляются алиасы, 
# например как ниже, аналогично для media и другого 
#Alias /static/ "D:/Server/domains/dj.local/static/"

WSGIScriptAlias "/" "D:/Server/domains/dj.local/django.wsgi"
<Directory "D:/Server/domains/dj.local/">
AllowOverride None
Options None
Order deny,allow
Allow from all
</Directory>
ErrorLog "D:/Server/domains/dj.local/django-error.log"
CustomLog "D:/Server/domains/dj.local/django-access.log" common
</VirtualHost>


Это все сделано для собственного закрепления знаний, Может кому то  тоже пригодится, как настроить OpenServer для django. Если есть вопросы, можно писать комментарии. :-)