search
top

Установка сервера Apache+…..+Django Part_2

В прошлой статье мы устанавливали и MySql. Сегодня займемся установкой 2.5, mod_python 3.3.1 и . С установкой думаю проблем у вас не возникнет, так как вся установка заключается из двух этапов, скачать дистрибутив и запустить его :-), а вот на остальных моментах остановлюсь подробнее.  Сразу скажу, что установка связки + mod_python омрачила  меня одним моментами,  бинарник mod_python под Windows подходит только для 2.5.  Если хотите установить его на 2.6 и выше, то придется   устраивать ритуальные пляски с бубнами.

Приступим к установке mod_python (я надеюсь, 2.5 вы уже установили)!!

Идем на офф сайт и закачиваем последнюю версию на сегодня это 3.3.1.  Запускаем приложение.

mod_python

mod_python

если вылетает окно с ошибкой типа “не найден MSVCR71.dll повторная установка приложения может решить проблему” то надо закачать отсюда MSVCR71.dll и положить его в  C:\WINDOWS\system32 это должно решить проблему. Повторно запускаем mod_python-3.3.1.win32-py2.5-Apache2.2.exe.  В процессе указываем корневой каталог Apach и ждем окончания установки.

mod_python

mod_python

Теперь установим framework, есть несколько способов установки . Мы пойдем простейшим - установим из svn последнею версию дистрибутива. Для этого нам потребуется svn клиент (я взял Slik который заберем здесь) Устанавливаем клиент!! После этого открываем консоль(cmd) заходим в каталог site-packages

cd C:\Python25\Lib\site-packages

И скачиваем   командой

svn co http://code.djangoproject.com/svn//trunk/

django_install_end_2

Теперь наш свежеиспечённый находится в C:\Python25\Lib\site-packages\. Если у вас уже есть установленный, то надо его обновить командой.

svn update

при этом находясь в директории . Вот и все!

django_update_end_4

Далее нам понадобится пустой джанго проект для тестирования. Создадим:

C:\Documents and Settings\User>cd C:\

C:\>mkdir example

C:\>cd example

С:\example>-admin.py startproject testproject

Если у вас появилась ошибка типа “-admin.py не является внутренней или внешней командой…” То скопируйте -admin.py из папки C:\Python25\Lib\site-packages\\bin в ту папку, где вы  хотите создать проект, в нашем случае это  С:\example, есть и другой способ решения данной проблемы, но об этом в другой раз. Повторите запрос

-admin.py startproject testproject

Вот у нас есть пустой проект.  Переходим к конфигурации , для этого открываем файл

C:\Program Files\ Software Foundation\Apache2.2\conf\httpd.conf

И подключаем в самом конце файла модулю питона.

LoadModule python_module modules/mod_python.so

затем пишем

<Location “/testproject/”>

SetHandler -program

PythonHandler .core.handlers.modpython

SetEnv DJANGO_SETTINGS_MODULE testproject.settings

PythonOption .root c:/example/testproject

PythonDebug On

PythonPath “['/example'] + sys.path”

</Location>

httpd_conf_1

Перезапускаем Apach заходим http://localhost/testproject/ радуемся.

localhost_testproj

Связанные записи

  • helm2004

    Доброго времени суток!
    Поставил всё как и Вы здесь написали.
    Но у меня появляються ошибки:
    MOD_PYTHON ERROR

    ProcessId: 3824
    Interpreter: ‘localhost’

    ServerName: ‘localhost’
    DocumentRoot: ‘F:/work/django/mysite’

    URI: ‘/testproject/’
    Location: ‘/testproject/’
    Directory: None
    Filename: ‘F:/work/django/mysite/testproject’
    PathInfo: ‘/’

    Phase: ‘PythonHandler’
    Handler: ‘django.core.handlers.modpython’

    Traceback (most recent call last):

    File “C:\Python25\lib\site-packages\mod_python\importer.py”, line 1537, in HandlerDispatch
    default=default_handler, arg=req, silent=hlist.silent)

    File “C:\Python25\lib\site-packages\mod_python\importer.py”, line 1229, in _process_target
    result = _execute_target(config, req, object, arg)

    File “C:\Python25\lib\site-packages\mod_python\importer.py”, line 1128, in _execute_target
    result = object(arg)

    File “C:\Python25\lib\site-packages\django\core\handlers\modpython.py”, line 228, in handler
    return ModPythonHandler()(req)

    File “C:\Python25\lib\site-packages\django\core\handlers\modpython.py”, line 191, in __call__
    self.load_middleware()

    File “C:\Python25\lib\site-packages\django\core\handlers\base.py”, line 31, in load_middleware
    for middleware_path in settings.MIDDLEWARE_CLASSES:

    File “C:\Python25\lib\site-packages\django\conf\__init__.py”, line 28, in __getattr__
    self._import_settings()

    File “C:\Python25\lib\site-packages\django\conf\__init__.py”, line 59, in _import_settings
    self._target = Settings(settings_module)

    File “C:\Python25\lib\site-packages\django\conf\__init__.py”, line 94, in __init__
    raise ImportError, “Could not import settings ‘%s’ (Is it on sys.path? Does it have syntax errors?): %s” % (self.SETTINGS_MODULE, e)

    ImportError: Could not import settings ‘testproject.settings’ (Is it on sys.path? Does it have syntax errors?): No module named testproject.settings

    В чём может быть ошибка?
    у меня:
    win XP SP2
    python 2.52
    Apache 2.2
    firefox 2.05

    Спасибо!

  • N_0v

    helm2004
    тоже сначало подобное выскакивало, потом добавил
    F:/work/django/mysite (у меня другой путь) в PATH, что-то еще подкрутил (не припомню уже что точно, т.к пол дня этим и занимался XD), заработало :).

  • Руст

    PythonPath “['/example'] + sys.path” Как только впечатываю эту строчку в конфиг апача, он отказывается запускаться

  • http://privats.ru/ Безумный Админ

    Посмотрите внимательно логи аpache, что в них за ошибка??

  • Руст

    [Mon Sep 21 00:00:36 2009] [notice] Parent: Received restart signal — Restarting the server.
    [Mon Sep 21 00:00:36 2009] [notice] Child 4000: Exit event signaled. Child process is ending.
    Syntax error on line 492 of D:/WebServers_Main/conf/httpd.conf:
    PythonPath takes one argument, Python path, specified in Python list syntax.
    [Mon Sep 21 00:00:36 2009] [warn] (OS 995)Операция ввода/вывода была прервана из-за завершения потока команд или по запросу приложения. : winnt_accept: Asynchronous AcceptEx failed.
    [Mon Sep 21 00:00:37 2009] [notice] Child 4000: Released the start mutex
    [Mon Sep 21 00:00:38 2009] [notice] Child 4000: All worker threads have exited.
    [Mon Sep 21 00:00:38 2009] [notice] Child 4000: Child process is exiting

    Вот это в лог дописалось

  • Руст

    Так ладно заменил “ на ” вроде запустился но в браузере по адресу http://localhost/testproject/ вижу:

    MOD_PYTHON ERROR

    ProcessId: 1424
    Interpreter: ‘10.8.124.2′

    ServerName: ‘10.8.124.2′
    DocumentRoot: ‘D:/WebServers_Main/htdocs’

    URI: ‘/testproject/’
    Location: ‘/testproject/’
    Directory: None
    Filename: ‘D:/WebServers_Main/htdocs/testproject’
    PathInfo: ‘/’

    Phase: ‘PythonHandler’
    Handler: ‘django.core.handlers.modpython’

    Traceback (most recent call last):

    File “D:\Program Files\Python\lib\site-packages\mod_python\importer.py”, line 1537, in HandlerDispatch
    default=default_handler, arg=req, silent=hlist.silent)

    File “D:\Program Files\Python\lib\site-packages\mod_python\importer.py”, line 1229, in _process_target
    result = _execute_target(config, req, object, arg)

    File “D:\Program Files\Python\lib\site-packages\mod_python\importer.py”, line 1128, in _execute_target
    result = object(arg)

    File “D:\Program Files\Python\lib\site-packages\django\core\handlers\modpython.py”, line 228, in handler
    return ModPythonHandler()(req)

    File “D:\Program Files\Python\lib\site-packages\django\core\handlers\modpython.py”, line 191, in __call__
    self.load_middleware()

    File “D:\Program Files\Python\lib\site-packages\django\core\handlers\base.py”, line 33, in load_middleware
    for middleware_path in settings.MIDDLEWARE_CLASSES:

    File “D:\Program Files\Python\lib\site-packages\django\utils\functional.py”, line 269, in __getattr__
    self._setup()

    File “D:\Program Files\Python\lib\site-packages\django\conf\__init__.py”, line 40, in _setup
    self._wrapped = Settings(settings_module)

    File “D:\Program Files\Python\lib\site-packages\django\conf\__init__.py”, line 75, in __init__
    raise ImportError, “Could not import settings ‘%s’ (Is it on sys.path? Does it have syntax errors?): %s” % (self.SETTINGS_MODULE, e)

    ImportError: Could not import settings ‘testproject.settings’ (Is it on sys.path? Does it have syntax errors?): No module named testproject.settings

  • Руст

    Безумный Админ допишите статью до конца пожалуйсто, очень нужно поставить django

  • http://ozero-chany.ru 3DMaximus

    У меня все заработало с первого раза. Мой конфиг выглядит так:


    LoadModule python_module modules/mod_python.so

    SetHandler python-program
    PythonHandler django.core.handlers.modpython
    SetEnv DJANGO_SETTINGS_MODULE djangoProjects.settings
    PythonOption django.root L:\home\maximus\python\djangoProjects
    PythonDebug On
    PythonPath “['L:\home\maximus\python'] + sys.path”

    Спасибо!

  • EvgIq

    А какого рода проблемы будут, если ставить mod_python-3.3.1.win32-py2.5-Apache2.2.exe когда стоит Python 2.6?

  • http://privats.ru/ Безумный Админ

    Уже не помню, давно это было )) но не становится это 100%. Я считаю что данная статья уже не актуальна, так как есть уже решения надежней и быстрее например Django + FastCGI + Nginx, если руки дойдут то напишу статейку по данной теме.

blog comments powered by Disqus
top