Я настроил проект Django, размещенный на Dreamhost с использованием Passenger WSGI в соответствии с их вики-инструкциями , и столкнулся с проблемой появления внутренних ошибок и сбоя mod_wsgi.
Я установил Python Paste с помощью , следуя их инструкциям , чтобы получить подробные журналы, отображаемые на веб-странице, но это не работает.IE: Каждый раз, когда у меня возникают внутренние ошибки, я все равно получаю страницу «внутренних ошибок» django без какой-либо другой информации в браузере.
Когда я тестировал установку пасты, удаляя «test» перед «def testapplication», это работало нормально.Но всякий раз, когда у меня возникает внутренняя ошибка, я все равно не получаю вывод пасты с полной информацией об ошибке.Вместо этого я получаю ту же загадочную страницу внутренней ошибки без информации.
Согласно их вики, моя конфигурация верна:
Мой файл passenger_wsgi.py:
import os, sys
import django.core.handlers.wsgi
INTERP = os.path.join(os.environ['HOME'], 'env', 'bin', 'python')
if sys.executable != INTERP:
os.execl(INTERP, INTERP, *sys.argv)
os.environ['DJANGO_SETTINGS_MODULE'] = "abc.settings"
sys.path.append(os.getcwd())
sys.path.append(os.path.join(os.getcwd(), 'abc'))
log = file('/home/abcadmin/passengerwsgi.log', 'a')
print >>log, "Running %s" % (sys.executable)
application = django.core.handlers.wsgi.WSGIHandler()
from paste.exceptions.errormiddleware import ErrorMiddleware
sys.stdout = sys.stderr
# remove the "test" below to test paste
def testapplication(environ, start_response):
status = '200 OK'
output = 'Hello World! Running Python version ' + sys.version + '\n\n'
response_headers = [('Content-type', 'text/plain'),
('Content-Length', str(len(output)))]
# to test paste's error catching prowess, uncomment the following line
# while this function is the "application"
raise("error")
start_response(status, response_headers)
return [output]
application = ErrorMiddleware(application, debug=True)
Мой журнал ошибок веб-сервера (error.log) пуст, и мой журнал доступа (access.log) полон сообщений, подобных следующему (последняя строка - отредактирована с поддельными ссылками).Где-то происходит регистрация, потому что access.log что-то регистрирует, но ошибки нигде не отображаются - кроме как на этой загадочной странице «внутренняя ошибка».
46.246.117.3 - - [21/Feb/2012:00:27:04 -0800] "GET /admin/ HTTP/1.1" 200 2326 "http://abc.acme.com/admin/userProfile/profile/16/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:10.0.2) Gecko/20100101 Firefox/10.0.2"
Проект Django хорошо работает наМоя среда разработки, но возникает какая-то проблема с сервером, когда он запускается на сервере Passenger WSGI - я установил Paste, чтобы попытаться отладить эти ошибки.Когда моя установка сталкивается с какой-либо ошибкой, отличной от Django, я получаю это загадочное сообщение «внутренняя ошибка».