Внутренняя ошибка сервера на apache, mod_wsgi, django 1.4

Я пишу сайт django для внутреннего использования в моей организации. Я использую тестовый подход для разработки сайта, изложенного в этом учебнике , потому что Я думаю, что это хорошая практика. Я использую Ubuntu 12.04, а сервер apache и mod_wsgi из репозиториев. Мое развитие происходит в виртуальной среде, созданной с помощью virtualenvwrapper.

Я хочу протестировать сайт в условиях, близких к тому, что будет как можно более продуктивным сервером, поэтому я пытаюсь настроить локальный сервер apache на своем ноутбуке с помощью mod_wsgi, чего я никогда раньше не делал. Я прочитал соответствующие биты mod_wsgi и django docs и просмотрел это видео , в котором были решены проблемы, с которыми я сталкивался с разрешениями на файлы. Но я, кажется, застрял в конечном препятствии, что презентация не адресуется - я полагаю, потому что я использую django 1.4, и это связано с более ранней версией, но я не уверен. Я намерен использовать локальный сервер apache, а не сервер разработки django, потому что сайту нужен поиск, который я хочу получить через haystack и apache solr, и я хочу проверить его и решить любые проблемы до развертывания.

Мой файл wsgi.py - это только джанго. После обрезки docstring это выглядит так:

import os

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "fugit.settings")

# This application object is used by any WSGI server configured to use this
# file. This includes Django's development server, if the WSGI_APPLICATION
# setting points here.
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

# Apply WSGI middleware here.
# from helloworld.wsgi import HelloWorldApplication
# application = HelloWorldApplication(application)

Мой httpd.conf выглядит так:

WSGIScriptAlias//var/www/djcode/fugit/fugit/fugit/apache/wsgi.py
WSGIPythonPath /var/www/djcode/fugit/fugit/fugit:/home/garry/.virtualenvs/fugit/lib/python2.7/site-packages




Order deny,allow
Allow from all


Когда я посещаю localhost, я получаю следующую ошибку. Это похоже на проблему PYTHONPATH, но мое понимание документации django состояло в том, что вторая строка в httpd.conf выше должна была разрешить это.

[Fri Dec 28 10:22:03 2012] [warn] mod_wsgi: Compiled for Python/2.7.2+.
[Fri Dec 28 10:22:03 2012] [warn] mod_wsgi: Runtime using Python/2.7.3.
[Fri Dec 28 10:22:03 2012] [notice] Apache/2.2.22 (Ubuntu) mod_wsgi/3.3 Python/2.7.3 configured -- resuming normal operations
[Fri Dec 28 10:22:05 2012] [error] [client 127.0.0.1] mod_wsgi (pid=3280): Target WSGI script '/var/www/djcode/fugit/fugit/fugit/apache/wsgi.py' cannot be loaded as Python module.
[Fri Dec 28 10:22:05 2012] [error] [client 127.0.0.1] mod_wsgi (pid=3280): Exception occurred processing WSGI script '/var/www/djcode/fugit/fugit/fugit/apache/wsgi.py'.
[Fri Dec 28 10:22:05 2012] [error] [client 127.0.0.1] Traceback (most recent call last):
[Fri Dec 28 10:22:05 2012] [error] [client 127.0.0.1]   File "/var/www/djcode/fugit/fugit/fugit/apache/wsgi.py", line 23, in 
[Fri Dec 28 10:22:05 2012] [error] [client 127.0.0.1]     from django.core.wsgi import get_wsgi_application
[Fri Dec 28 10:22:05 2012] [error] [client 127.0.0.1] ImportError: No module named django.core.wsgi
[Fri Dec 28 10:22:08 2012] [error] [client 127.0.0.1] mod_wsgi (pid=3279): Target WSGI script '/var/www/djcode/fugit/fugit/fugit/apache/wsgi.py' cannot be loaded as Python module.
[Fri Dec 28 10:22:08 2012] [error] [client 127.0.0.1] mod_wsgi (pid=3279): Exception occurred processing WSGI script '/var/www/djcode/fugit/fugit/fugit/apache/wsgi.py'.
[Fri Dec 28 10:22:08 2012] [error] [client 127.0.0.1] Traceback (most recent call last):
[Fri Dec 28 10:22:08 2012] [error] [client 127.0.0.1]   File "/var/www/djcode/fugit/fugit/fugit/apache/wsgi.py", line 23, in 
[Fri Dec 28 10:22:08 2012] [error] [client 127.0.0.1]     from django.core.wsgi import get_wsgi_application
[Fri Dec 28 10:22:08 2012] [error] [client 127.0.0.1] ImportError: No module named django.core.wsgi

Может ли кто-нибудь сказать мне, что мне здесь не хватает?

РЕДАКТИРОВАТЬ:

Похоже, у меня может быть проблема с разрешениями virtualenvwrapper. Я попытался переместить мои virtualenvs, как было предложено этим ответом , но теперь virtualenvwrapper, похоже, не может найти себя. Я получаю `[Errno 13] Permission denied 'при попытке загрузить крючки инициализации. У меня chmod 755 новый каталог, но нет кубиков.

FURTHER РЕДАКТИРОВАТЬ: I have side-stepped this issue by using nginx as a reverse proxy for gunicorn instead of deploying with Apache. It was set up and running smoothly in about half an hour.

1
добавлено отредактировано
Просмотры: 1
В верхней части вашего файла wsgi добавьте путь к проекту, см. здесь и дайте мне знать, если он работает
добавлено автор Aamir Adnan, источник
traceback также показывает, что mod_wsgi.so скомпилирован для python 2.7.2 , но среда выполнения использует 2.7.3 . Убедитесь, что вы положили mod_wsgi.so , который скомпилирован для используемой версии python.
добавлено автор Aamir Adnan, источник
Вы не можете просто перемещать virtualenv, вам нужно будет его воссоздать.
добавлено автор Graham Dumpleton, источник
Совершено, но никаких изменений я боюсь.
добавлено автор cms_mgr, источник
Похоже, что несоответствие компиляции Ubuntu quirk, которое не должно вызвать проблему . Я думаю, что у меня может быть такая же проблема, что этот ответ решён но я не могу показаться, что передвигаю свой virtualenv таким образом, который предлагает ответ, без virtualenvwrapper, жалующегося как сумасшедший. Спасибо за ваше время.
добавлено автор cms_mgr, источник

Ответов нет

0