Как исправить ошибку при развертывании Django в Apache2 с использованием WSGI (wsgi.py, строка 284)

Я сталкиваюсь с этим сообщением об ошибке при развертывании django в apache2 с помощью mod_wsgi, и я не могу это исправить:

tail -f /var/log/apache2/error.log
[Tue Dec 20 04:15:45 2011] [info] mod_wsgi (pid=3959): Adding '/usr/local/lib/python2.7/site-packages/' to path.
[Tue Dec 20 04:15:45 2011] [info] [client 80.226.1.7] mod_wsgi (pid=3959, process='', application='digitalchaot.de|/djangu'): Loading WSGI script '/home/webapps/digitalchaot/apache.wsgi'.
[Tue Dec 20 04:16:04 2011] [error] [client 80.226.1.7] mod_wsgi (pid=3959): Exception occurred processing WSGI script '/home/webapps/digitalchaot/apache.wsgi'.
[Tue Dec 20 04:16:04 2011] [error] [client 80.226.1.7] Traceback (most recent call last):
[Tue Dec 20 04:16:04 2011] [error] [client 80.226.1.7]   File "/usr/local/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 284, in __call__
[Tue Dec 20 04:16:04 2011] [error] [client 80.226.1.7]     start_response(status, response_headers)
[Tue Dec 20 04:16:04 2011] [error] [client 80.226.1.7] TypeError: expected byte string object for status, value of type str found
[Tue Dec 20 04:16:04 2011] [error] [client 80.226.1.7] File does not exist: /htdocs
[Tue Dec 20 04:20:11 2011] [error] [client 207.46.13.206] File does not exist: /htdocs
[Tue Dec 20 04:20:57 2011] [error] [client 207.46.13.206] File does not exist: /htdocs

Я использую Debian с Python 2.7.2 с Django 1.3.1 и текущим mod_wsgi. Я сам скомпилировал python, django и wsgi из-за предыдущих ошибок. Кто-нибудь подскажет, в чем может быть ошибка?


person JasonTS    schedule 20.12.2011    source источник
comment
Не могли бы вы также опубликовать конфигурацию Apache для вашего сайта?   -  person Torsten Engelbrecht    schedule 20.12.2011
comment
Подсказка может заключаться в том, что где-то в вашей конфигурации apache вы ссылаетесь на /htdocs как на место статического контента, а этого места не существует?   -  person jdi    schedule 20.12.2011


Ответы (1)


Что касается ошибки Python, похоже, что ваш mod_wsgi скомпилирован для Python 3.1, а не для Python 2.7. Вам необходимо убедиться, что установленный mod_wsgi был скомпилирован для Python 2.7.

Подсказка заключается в том, что сообщение об ошибке жалуется, что статус представляет собой строку байтов, а не текстовую строку. Это может произойти только в Python 3.X с mod_wsgi.

Пройдите проверки в этом документе:

http://code.google.com/p/modwsgi/wiki/Проверкавашейустановки

person Graham Dumpleton    schedule 20.12.2011
comment
благодарю вас. я не знаю, откуда взялась неправильная версия wsgi, но я удалил ее и снова скомпилировал. не все работает нормально :) - person JasonTS; 20.12.2011