Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 10, 2015 18:10:41

Spice
От:
Зарегистрирован: 2009-11-24
Сообщения: 24
Репутация: +  0  -
Профиль   Отправить e-mail  

Django 1.7 Apache 2.4 mod_wsgi

Здравствуйте!

Возникла проблема при настройке Django 1.7 в связке с Apache 2.4 и wsgi под windows 7.

Что было сделано:
1. установил Python 2.7 и Django 1.7
2. создал тестовый проект “django-admin.py startproject django_test_project”
3. успешно запустил сервер разработки “manage.py runserver”
4. установил Apache 2.4 + mod_wsgi - питоновские скрипты работают
5. для запуска тестового проекта через Apache:
- в файл apache2.conf добавил

WSGIScriptAlias / "C:/Apache24/htdocs/django_test_project/django_test_project/wsgi.py"
WSGIPythonPath "C:/Apache24/htdocs/django_test_project"
<Directory "C:/Apache24/htdocs/django_test_project">
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
<Files wsgi.py>
Order deny,allow
Require all granted
</Files>
</Directory>
- открываю "http://127.0.0.1" и вижу 500 ошибку. Лог:
ImportError: Could not import settings 'django_test_project.settings' (Is it on sys.path? Is there an import error in the settings file?): No module named django_test_project.settings\r
Файл wsgi.py, созданный Django:
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "django_test_project.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

Первое, что сделал - это добавил в wsgi.py
sys.path.append("C:\\Apache24\\htdocs\\django_test_project")
Лог в результате:
End of script output before headers: wsgi.py

Проверил, что пути для импорта верны:
import os
import sys
import importlib
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "django_test_project.settings")
sys.path.append("C:\\Apache24\\htdocs\\django_test_project")
settings_module = os.environ.get("DJANGO_SETTINGS_MODULE")
mod = importlib.import_module(settings_module)
f = open("test.log", "w")
f.write("%s \n" % (str(mod), ))
f.close()
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

Содержимое test.log:
<module 'django_test_project.settings' from 'C:\Apache24\htdocs\django_test_project\django_test_project\settings.pyc'>
значит с путями все верно.

Вторая мысль - это перенести wsgi.py на директорию выше, чтобы в sys.path была строка “C:\Apache24\htdocs\django_test_project”, а не “C:\Apache24\htdocs\django_test_project\django_test_project” и правка apache2.conf:
WSGIScriptAlias / "C:/Apache24/htdocs/django_test_project/wsgi.py"
Лог в результате:
End of script output before headers: wsgi.py

Кто-нибудь может подсказать в чем кроется ошибка?









Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version