django + mod_wsgi + apache - PullRequest
       8

django + mod_wsgi + apache

1 голос
/ 10 марта 2010

Когда я запускаю свой проект django на apache с mod_wsgi, я получаю что-то подобное:

    [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

Есть какие-нибудь предложения, подсказки или решения?

Ответы [ 2 ]

0 голосов
/ 11 марта 2010

Вот несколько советов, где можно посмотреть:

  1. Ваши пути в трассировке указывают на /usr/local/lib/python2.6/ ... возможно, вы создали mod_wsgi с другой версией Python, особенно с установленной системой версией, вероятно, в /usr/lib/pythonX.X. При сборке mod_wsgi вам нужно использовать это:

    . / Configure --with-python = / usr / local / bin / python2.6

  2. Проверьте журнал ошибок Apache, чтобы увидеть, есть ли там какие-либо полезные сообщения, особенно те, которые описаны в mod_wsgi Проблемы с установкой .

  3. Когда вы запускаете syncdb, даже "в первый раз", вы видите сообщения о создании таблиц аутентификации? Возможно, у вас все еще есть старая таблица аутентификации в вашей базе данных, и вы можете решить проблему, полностью удалив базу данных и начав с нуля (или выполнив что-то вроде manage.py reset

0 голосов
/ 10 марта 2010

Похоже, что одна из записей в таблице django_session может быть искажена. Либо осмотрите таблицу и удалите разбитую строку, либо вы можете полностью ее обрезать, если вы можете жить с этим.

...