2010-03-10 118 views
1

当我与mod_wsgi的运行Apache我的Django项目,我收到这样的事情:Django的+ mod_wsgi的+ APACHE

[Wed Mar 10 08:46:43 2010] [error] [client 10.13.1.145] Traceback (most recent call last): 
     [Wed Mar 10 08:46:43 2010] [error] [client 10.13.1.145] File "/usr/local/lib/python2.6/site-packages/Django-1.1.1-py2.6.egg/django/core/handlers/wsgi.py", line 245, in __call__ 
     [Wed Mar 10 08:46:43 2010] [error] [client 10.13.1.145]  response = middleware_method(request, response) 
     [Wed Mar 10 08:46:43 2010] [error] [client 10.13.1.145] File "/usr/local/lib/python2.6/site-packages/Django-1.1.1-py2.6.egg/django/contrib/sessions/middleware.py", line 28, in process_response 
     [Wed Mar 10 08:46:43 2010] [error] [client 10.13.1.145]  if request.session.get_expire_at_browser_close(): 
     [Wed Mar 10 08:46:43 2010] [error] [client 10.13.1.145] File "/usr/local/lib/python2.6/site-packages/Django-1.1.1-py2.6.egg/django/contrib/sessions/backends/base.py", line 229, in get_expire_at_browser_close 
     [Wed Mar 10 08:46:43 2010] [error] [client 10.13.1.145]  if self.get('_session_expiry') is None: 
     [Wed Mar 10 08:46:43 2010] [error] [client 10.13.1.145] File "/usr/local/lib/python2.6/site-packages/Django-1.1.1-py2.6.egg/django/contrib/sessions/backends/base.py", line 63, in get 
     [Wed Mar 10 08:46:43 2010] [error] [client 10.13.1.145]  return self._session.get(key, default) 
     [Wed Mar 10 08:46:43 2010] [error] [client 10.13.1.145] File "/usr/local/lib/python2.6/site-packages/Django-1.1.1-py2.6.egg/django/contrib/sessions/backends/base.py", line 172, in _get_session 
     [Wed Mar 10 08:46:43 2010] [error] [client 10.13.1.145]  self._session_cache = self.load() 
     [Wed Mar 10 08:46:43 2010] [error] [client 10.13.1.145] File "/usr/local/lib/python2.6/site-packages/Django-1.1.1-py2.6.egg/django/contrib/sessions/backends/db.py", line 18, in load 
     [Wed Mar 10 08:46:43 2010] [error] [client 10.13.1.145]  return self.decode(force_unicode(s.session_data)) 
     [Wed Mar 10 08:46:43 2010] [error] [client 10.13.1.145] File "/usr/local/lib/python2.6/site-packages/Django-1.1.1-py2.6.egg/django/contrib/sessions/backends/base.py", line 93, in decode 
     [Wed Mar 10 08:46:43 2010] [error] [client 10.13.1.145]  encoded_data = base64.decodestring(session_data) 
     [Wed Mar 10 08:46:43 2010] [error] [client 10.13.1.145] File "/usr/local/lib/python2.6/base64.py", line 321, in decodestring 
     [Wed Mar 10 08:46:43 2010] [error] [client 10.13.1.145]  return binascii.a2b_base64(s) 
[Wed Mar 10 08:46:43 2010] [error] [client 10.13.1.145] Error: Incorrect padding 

有任何建议,线索或解决方案?

回答

0

听起来像django_session表中的条目之一可能是畸形的。检查表格并移除破损的行,或者如果可以忍受的话,可以完全截断表格。

+0

解决这个问题。在第一次运行错误ocure 。syncdb只在第一次测试之前完成 – hubertus 2010-03-10 21:07:40

+0

问题出在数据库上。谢谢 – hubertus 2010-03-11 15:37:24

0

下面是地方一些建议看看:

  1. 你在回溯点/usr/local/lib/python2.6/路径...也许你建mod_wsgi使用不同版本的Python,尤其是系统安装的版本可能是在/usr/lib/pythonX.X。当构建mod_wsgi你需要使用这样的:

    的./configure --with-蟒蛇=在/ usr/local/bin目录/ python2.6的

  2. 检查Apache的错误日志,看看是否有任何有用的消息在那里,尤其是那些记录在mod_wsgi Installation Issues

  3. 当您运行syncdb时,即使是“第一次”,您是否看到关于正在创建的验证表的消息?也许你仍然有一个旧的权威性表在数据库中,可以通过一般的开发服务器做工精细完全删除了数据库,并从头开始(或做类似manage.py reset

+0

关于(1),如果mod_wsgi是针对系统Python构建的,它应该在运行时发现它没问题。通常是编译为使用替代版本但仍然在运行时发现系统的问题,它使用/ usr/local版本表明这不是问题,除非他们犯了以某种方式手动设置sys.path的错误以便在安装时查看不同于mod_wsgi的Python版本的目录。所以混合安装可能是一个问题,但它会要求他们引起问题。 – 2010-03-11 02:12:31

+0

问题出在数据库中。感谢您的帮助 – hubertus 2010-03-11 15:34:24

+0

走在前面,有时像Track等其他应用程序使用mod_python而不是mod_wsgi。当mod_python加载我们期望运行mod_wsgi的python的其他实例时,可能会出现问题 – hubertus 2010-03-11 19:02:30