如何修复在使用WSGI部署Django时Apache2出现的错误(wsgi.py,第284行)
我在用apache2和mod_wsgi部署django的时候遇到了这个错误信息,搞不定:
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,因为之前遇到过错误。有没有人能给点提示,这个错误可能是什么呢?
1 个回答
2
关于这个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/CheckingYourInstallation