Django中的WSGI出现500错误

时间:2011-12-01 23:02:06

标签: django wsgi

我正在部署我的第一个Django项目,我感觉我非常接近,但只是需要一些帮助来克服这条线。这是问题所在:

我的httpd.conf更改如下所示:

WSGIScriptAlias / /home/miketnc/frontend/tncsite/wsgi.py
WSGIPythonPath /home/miketnc/frontend/tncsite

<Directory /home/miketnc/frontend/tncsite>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>

到目前为止,wsgi.py中的“hello world”脚本运行得很好。当我使用Django doc-recommended wsgi脚本时出现问题:

import os, sys

sys.path.append('/home/miketnc/frontend/tncsite')
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "tncsite.settings")

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

这会导致500错误:

File "/home/miketnc/frontend/tncsite/wsgi.py", line 10, in ?
mod_wsgi (pid=15494): Exception occurred processing WSGI script '/home/miketnc/frontend/tncsite/wsgi.py'.
mod_wsgi (pid=15494): Target WSGI script '/home/miketnc/frontend/tncsite/wsgi.py' cannot be loaded as Python module.

我在错误上看到的所有支持都与apache中的错误安装有关,而不是查找模块等,如果“hello world”正在运行则不会出现这种情况。

有什么想法吗?

更新

在新服务器上重新启动后,我设法将事情略微向前推进。好消息是python和WSGI似乎打得很好,不好的是我现在得到了另一种500错误。

我在日志中遇到的唯一错误是:     “[2011年12月5日18:22:45] [错误] [客户端IP] mod_wsgi(pid = 19804):处理WSGI脚本'/home/miketnc/frontend/tncsite/apache/wsgi.py'时发生异常。”< / p>

Hello World脚本仍然正常运行,错误的触发器是最后一行:

application = django.core.handlers.wsgi.WSGIHandler()

我已经将包含该项目的所有目录从前端/下移到777,我自己添加了一个守护进程:

LoadModule wsgi_module /usr/local/apache/extramodules/mod_wsgi.so
AddHandler wsgi-script .wsgi

WSGIDaemonProcess miketnc processes=2 maximum-requests=500 threads=1
WSGIProcessGroup miketnc

WSGIScriptAlias / /home/miketnc/frontend/tncsite/apache/wsgi.py

<Directory /home/miketnc/frontend/tncsite>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>

任何人都可以进一步建议如何使这项工作?

2 个答案:

答案 0 :(得分:4)

在你的情况下:

WSGIPythonPath /home/miketnc/frontend/tncsite

是多余的,因为您正在WSGI脚本文件中设置sys.path。

您缺少的是添加网站的父目录:

sys.path.append('/home/miketnc/frontend')

这是添加'/ home / miketnc / frontend / tncsite'的现有行的补充。

读:

http://code.google.com/p/modwsgi/wiki/IntegrationWithDjango

并观看:

http://code.google.com/p/modwsgi/wiki/WhereToGetHelp?tm=6#Conference_Presentations

谈论路径和权限。

答案 1 :(得分:3)

解决。

我没有意识到Cpanel中的错误日志只是Apache输出错误日志的一小部分。一旦我查看Apache日志,问题就显而易见了。在这种情况下,MySQLdb没有正确设置。

我完成了它,围绕.python-eggs进行了一些调整,现在一切都很顺利。

感谢您的回复,特别感谢格雷厄姆为您在WSGI中所做的工作。