установка Django на локалку в Windows 7

 как установить Django на виртуальном хостинге
начальное состояние : Windows 7 и установлен XAMPP, работаю php скрипты
задача : установить Django  но что бы остались в работе и php скрипты




1. Установка Python - скачиваем python-2.6.msi с
потом кликаем и устанавливает
пока  python-2.7.msi лучше не ставить т к для него нет необходимых модулей (к примеру для MySQL)

2. Добавлением в PATH :
";C:\Python26;C\Python26\scripts;C:\Python26\Lib\site-packages\django\bin\”
Для установки переменных окружения в Windows нажмите правой клавишей мышки по ярлыку Мой компьютер затем выберите Свойства => Дополнительно => Переменные среды. В нижнем окошке ( Системные переменные ) нажмите PATH,изменить и добавте в конце ";C:\Python27;".
3. Установка  Django - скачиваем последнюю версию по ссылке http://www.djangoproject.com/download распакуйте архив в C:\Python26\Django-1.2.1 затем зайдите в Windows консоле в данную папку (C:\Python27\Django-1.2.1\setup.py) и выполните команду
C:\Python26\Django-1.2.1>python setup.py install
для проверки установки нужно в консоле опять же запустить интерпретатор python и в нем выполнить команды
>>> import django
>>> django.VERSION
4. Установка mod_python для Apache
(http://www.djangoproject.com/r/mod_python/)  это модуль для Apache
вылетает окно с ошибкой типа “не найден MSVCR71.dll" да и кроме то подходит только для Python2.5. что не удалять всё что уже установил решил забить на mod_python.

4. Установка modwsgi - http://code.google.com/p/modwsgi/ там же есть и инструкция по установке
нужно скопировать файл mod_wsgi-win32-ap22py26-3.3.so в C:\xampp\apache\modules  и переименовать в mod_wsgi.so  и добавить строку в  LoadModule wsgi_module modules/mod_wsgi.so в C:\xampp\apache\conf\httpd.conf

идем в консоле в "cd C:\xampp\htdocs"
выполняем : C:\xampp\htdocs > django-admin.py startproject myapps
выполняем   C:\xampp\htdocs\myapps>python manage.py runserver
идем в браузер http://127.0.0.1:8000  и смотрим "It worked!"
Был запушен сервер разработки Django, легкий Web-сервер, написанный на Python.Он включен  в Django, для того, чтобы можно было разрабатывать программы быстрее, без необходимости настраивать production server - такой как, например, Apache.

5. Установка mysql_python 2.6 for Mysql  - http://www.codegood.com/ качаем и ставим

6. Редактируем   C:\xampp\htdocs\myapps\settings.py  и изменяем DATABASES стандартными для mysql  настройками

7. Редактируем Apache  httpd.conf - добавляем строку
WSGIScriptAlias / "C:/xampp/htdocs/myapps/django.wsgi"

8. Создаем файл django.wsgi в текстовом радакторе вносим
import os, sys
sys.path.append('C:/xampp/htdocs')
os.environ['DJANGO_SETTINGS_MODULE'] = 'myapps.settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()


теперь стартуем apache и http://localhost/ видим уже знакомое
"It worked!
Congratulations on your first Django-powered page."

9. наладить виртуальные хосты что бы работали другие проекты
на PHP.

для этого в файле C:\xampp\apache\conf\extra\httpd-vhosts.conf добавляем


ServerName django
DocumentRoot C:/xampp/htdocs/myapps
WSGIScriptAlias / "C:/xampp/htdocs/myapps/django.wsgi"

Order deny,allow
Allow from all








ServerName localhost
DocumentRoot C:/xampp/htdocs


дабавляем host django "127.0.0.1 django" в C:\Windows\System32\drivers\etc\hosts

меняем django.wsgi на

import os, sys
import django.core.handlers.wsgi
sys.path.append(os.path.join(os.path.realpath(os.path.dirname(__file__)), '..'))
os.environ['DJANGO_SETTINGS_MODULE'] = os.path.basename(os.path.dirname(__file__)) + '.settings'
application = django.core.handlers.wsgi.WSGIHandler()
sys.path.append(os.path.join(os.path.realpath(os.path.dirname(__file__))))

и ву а ля . работает и PHP и Django. хотя я протестировал всё для Windows 7 этот туториал подойдёт и для Windows Vista , Windows XP

p.s. материалы используемые в статье найдены по кусочкам на форумах и блогах а также в документациях

10 комментариев:

  1. Спасибо. Очень качественно написано.

    ОтветитьУдалить
  2. доброго времени суток. У меня возник вопрос на этапе 9, точнее создание виртуального хоста. Сделал изменения в файле httpd-hosts.conf - и apache2 при запуске выдает ошибку (даже когда запускается как обычная служба). После возврата к предыдущим настройкам - apache2 работает нормально.

    P.S. apache2 используется только для создания django проэктов

    ОтветитьУдалить
  3. я сделал копию httpd-vhosts.conf и добавил в пост
    как картинку. надеюсь это поможет

    ОтветитьУдалить
  4. всеравно немогу понять в чем ошибка:

    ServerName django
    DocumentRoot C:/S/xampp/htdocs/myapps
    WSGIScriptAlias / "C:/S/xampp/htdocs/myapps/django.wsgi"

    Order deny,allow
    Allow rfom all




    ServerName localhost
    DocumentRoot C:/S/xampp/htdocs



    P.S. у меня xampp находится в C:/S/xampp
    И непонятно с какого чуда Apache2 запускается только через Службы, а в Control Panel - выдает ошибку.

    спс за содействие

    ОтветитьУдалить
  5. могу посоветовать спрева наладит WAPM а потом уже
    переходить к настройке # Django
    по установке xampp c PHP много топиков в google

    ОтветитьУдалить
  6. Спасибо за статью, все заработало настраивал на wamp server.

    ОтветитьУдалить
  7. спасибо, статья помогла. перекопал за два дня десятки статей по apache + mod_wsgi. всегда возникали сложности на этапе настройки httpd.conf. а у вас всё кратко и понятно. хотя ещё не знаю как этим пользоваться, но главное, что наконец то запустилось с апачем.

    ОтветитьУдалить
  8. насчет виртуальных хостов..
    не верная конфигурация httpd.conf
    это можно посмотреть запустив c:\xampp\apache\bin\httpd.exe -S

    маленькая ошибка в конфиге, вот работающая:
    #
    # Virtual Hosts
    #
    # If you want to maintain multiple domains/hostnames on your
    # machine you can setup VirtualHost containers for them. Most configurations
    # use only name-based virtual hosts so the server doesn't need to worry about
    # IP addresses. This is indicated by the asterisks in the directives below.
    #
    # Please see the documentation at
    #
    # for further details before you try to setup virtual hosts.
    #
    # You may use the command line option '-S' to verify your virtual host
    # configuration.

    #
    # Use name-based virtual hosting.
    #
    NameVirtualHost *:80

    #
    # VirtualHost example:
    # Almost any Apache directive may go into a VirtualHost container.
    # The first VirtualHost section is used for all requests that do not
    # match a ServerName or ServerAlias in any block.
    #

    ServerName django
    DocumentRoot C:/xampp/htdocs/myapps
    WSGIScriptAlias / "C:/xampp/htdocs/myapps/django.wsgi"

    Order deny,allow
    Allow from all




    ServerName localhost
    DocumentRoot C:/xampp/htdocs

    ОтветитьУдалить
  9. все сделал, но после добавления mod_wsgi, apache перестал запускаться

    ОтветитьУдалить
  10. Что я не так зделала с установкой Установка Mod_wsgi для Apache на http://open-server.ru
    ==
    2015-02-10 15:00:52 --------------------------------------------
    2015-02-10 15:00:52 Начало процедуры запуска сервера
    2015-02-10 15:00:52 Обновление Hosts файла
    2015-02-10 15:00:52 Обновление конфигурации MySQL-5.5
    2015-02-10 15:00:52 Обновление конфигурации Sendmail
    2015-02-10 15:00:52 Обновление конфигурации PHP-5.3
    2015-02-10 15:00:52 Обновление конфигурации PHPMyAdmin
    2015-02-10 15:00:52 Обновление конфигурации Apache-2.2
    2015-02-10 15:00:52 Запуск MySQL-5.5
    2015-02-10 15:00:52 Запуск Apache-2.2
    2015-02-10 15:00:52 Проверка состояния сервера
    2015-02-10 15:01:31 Не удалось запустить Apache-2.2
    2015-02-10 15:01:31 Сбой запуска!
    2015-02-10 15:01:31 --------------------------------------------
    2015-02-10 15:01:31 Начало процедуры остановки сервера
    2015-02-10 15:01:31 Остановка системных модулей
    2015-02-10 15:01:32 Отключение виртуального диска
    2015-02-10 15:01:32 Сервер успешно остановлен за 0,89 секунд!
    ==
    Вот такое выбило, в конфиге прописала
    #LoadModule wsgi_module modules/mod_wsgi.so

    ОтветитьУдалить