我正在部署我的第一个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>
任何人都可以进一步建议如何使这项工作?
答案 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中所做的工作。