Трудно точно понять, что вы делаете неправильно, не видя ваших настроек. Я следовал инструкциям, и это было не так сложно.
Одна вещь, которую вы можете сделать для отладки вашего приложения, - это запустить manage.py. Он не сможет привязаться к сокету (и если он это сделает, он будет автоматически убит через несколько минут), но это по крайней мере покажет, если есть другие проблемы, препятствующие запуску вашего приложения.
Еще одна вещь, на которую следует обратить внимание: файл называется passenger_wsgi.py
и должен находиться в корне вашего сайта. Например, у меня есть ~/testing.tustincommercial.com/passenger_wsgi.py
, а весь мой код проекта живет под ~/testing.tustincommercial.com/oneclickcos
. Мой статический контент живет под ~/testing.tustincommercial.com/public
.
Может помочь установление некоторого промежуточного программного обеспечения для обработки ошибок, чтобы ошибки не распространялись на весь пассажир, что приводит к возникновению ошибки 500.
Мой wsgi_passenger.py
:
import sys, os, re
cwd = os.getcwd()
sys.path.append(os.getcwd())
#add all installed eggs to path
for x in ['/home/marcintustin/django/'+x for x in os.listdir('/home/marcintustin/django/') if re.search('egg$', x)]:
sys.path.insert(0,x)
sys.path.insert(0,'/home/marcintustin/django')
sys.path.insert(0,'/home/marcintustin/django/Django-1.3')
sys.path.insert(0,'/home/marcintustin/django/Paste-1.7.5.1-py2.5.egg')
sys.path.insert(0,'/home/marcintustin/django/South-0.7.3-py2.5.egg')
sys.path.insert(0,'/home/marcintustin/django/Werkzeug-0.6.2-py2.5.egg')
myapp_directory = cwd + '/oneclickcos'
sys.stdout = sys.stderr
sys.path.insert(0,myapp_directory)
sys.path.append(os.getcwd())
os.environ['DJANGO_SETTINGS_MODULE'] = "oneclickcos.settings"
import django.core.handlers.wsgi
#from paste.exceptions.errormiddleware import ErrorMiddleware
from werkzeug.debug import DebuggedApplication
from django.core.servers.basehttp import run, AdminMediaHandler, WSGIServerException
application = django.core.handlers.wsgi.WSGIHandler()
handler = AdminMediaHandler(application, '/home/marcintustin/testing.tustincommercial.com/public/static/admin')
application = DebuggedApplication(handler, evalex=True)
Это делает кучу вещей, большинство из которых не являются строго необходимыми - все, что вверху - это чтобы убедиться, что установленные мной библиотеки доступны. Материал внизу устанавливает промежуточное программное обеспечение. Возможно, вам лучше использовать paste.exceptions.errormiddleware.ErrorMiddleware
, если только отладчик werkzeug не работает для вас (он не будет работать для меня на Dreamhost).
Редактировать: Я думаю, что ваш конфиг неверен. Перейдите в каталог, в котором находится ваш проект, и введите pwd
, чтобы получить полный путь. Я думаю, вы обнаружите, что не правильно поняли свои пути.