Я развертываю свой первый в истории проект Django, и у меня возникает ощущение, что я очень близок, но мне просто нужна помощь, чтобы переступить черту. Вот проблема:
Мои изменения httpd.conf выглядят так:
WSGIScriptAlias / /home/miketnc/frontend/tncsite/wsgi.py
WSGIPythonPath /home/miketnc/frontend/tncsite
<Directory /home/miketnc/frontend/tncsite>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>
Пока все хорошо, скрипт "hello world" в wsgi.py работает просто отлично. Проблема возникает, когда я использую рекомендованный Django сценарий wsgi:
import os, sys
sys.path.append('/home/miketnc/frontend/tncsite')
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "tncsite.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
Это вызывает ошибку 500:
File "/home/miketnc/frontend/tncsite/wsgi.py", line 10, in ?
mod_wsgi (pid=15494): Exception occurred processing WSGI script '/home/miketnc/frontend/tncsite/wsgi.py'.
mod_wsgi (pid=15494): Target WSGI script '/home/miketnc/frontend/tncsite/wsgi.py' cannot be loaded as Python module.
Вся поддержка, которую я видел в этой ошибке, относится к неправильным установкам в apache, не к поиску модулей и т. Д., Чего не может быть, если запущен «hello world».
Есть идеи?
UPDATE
После перезапуска на новом сервере мне удалось немного продвинуться вперед. Хорошая новость в том, что Python и WSGI, кажется, играют хорошо, плохая в том, что теперь я получаю ошибку 500 разного рода.
Единственная ошибка, которую я получаю в журнале:
"[Пн. Дек 05 18:22:45 2011] [ошибка] [ip клиента] mod_wsgi (pid = 19804): Возникла исключительная ситуация при обработке сценария WSGI '/home/miketnc/frontend/tncsite/apache/wsgi.py'."
Сценарий Hello World по-прежнему работает нормально, триггер для ошибки - последняя строка:
application = django.core.handlers.wsgi.WSGIHandler()
Я установил все каталоги, содержащие проект, из frontend / down в 777, и добавил процесс демона под себя:
LoadModule wsgi_module /usr/local/apache/extramodules/mod_wsgi.so
AddHandler wsgi-script .wsgi
WSGIDaemonProcess miketnc processes=2 maximum-requests=500 threads=1
WSGIProcessGroup miketnc
WSGIScriptAlias / /home/miketnc/frontend/tncsite/apache/wsgi.py
<Directory /home/miketnc/frontend/tncsite>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>
Кто-нибудь может посоветовать, как это работает?