经过非常标准和次要的发布后,我们的Apache / Nginx / Django / wsgi设置已停止与可怕的
一起运行脚本标题的过早结束:django.wsgi
日志中的消息。没有任何段错误,也没有其他错误消息。
没有外派问题(使用和不包含该模块的示例wsgi app进行检查)。 服务器工作正常。代码库稍有更新,当恐怖开始时apache重新启动。
这是我的wsgi文件:
import sys
import os
sys.path.append('/home/app/')
sys.path.append('/home/app/topmodule/')
os.environ['DJANGO_SETTINGS_MODULE'] = 'app.settings'
os.environ["CELERY_LOADER"] = "django"
import app.settings
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
此网站的apache conf是:
WSGIScriptAlias / /home/app/topmodule/django.wsgi
WSGIDaemonProcess app user=app group=app processes=6 threads=1
WSGIProcessGroup app
我也尝试添加:
WSGIApplicationGroup %{GLOBAL}
但没有帮助。 我得到的只是一个apache Server错误页面,错误日志中该死的早期错误。
我确实试图回滚代码库,但这没有任何好处,这导致我怀疑它不是新的代码问题。
修改 我已经将段错误缩小到了Django的wsgi.py中的一行。
跟踪:
http://paste.pocoo.org/show/546803/
一些转储:
http://paste.pocoo.org/show/546846/
请求任何网址时都会发生这种情况。 使用的中间件:
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.gzip.GZipMiddleware',
答案 0 :(得分:0)
您可以尝试将django路径显式添加到sys.path吗?
sys.path.append('/usr/local/lib/python2.6/site-packages/django')
(仔细检查它真的在那里:))
答案 1 :(得分:0)
我最终重新安装了apache,mod wsgi和所有相关的软件包。在某些时候出现警告错误,mod_wsgi是针对Python 2.6.6编译的,而运行时是Python 2.6.4。 我将Python从源代码重建为2.6.6并解决了问题。我不确定它是次要版本更新还是修复它的整个重建。我也不确定为什么它一直工作到现在,然后突然停止工作,但至少现在一切都好了。