django - Django 中的 WSGI 出现 500 错误

标签 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 文档推荐的 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' 时发生异常。"

Hello World 脚本仍然运行良好,错误的触发因素是最后一行:

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

我已经将包含该项目的所有目录从 frontend/向下设置为 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>

任何人都可以就如何使其正常工作提供进一步的建议吗?

最佳答案

就您而言:

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

其中讨论路径和权限。

关于django - Django 中的 WSGI 出现 500 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8349582/

相关文章:

python - View 中的 DJANGO 回调函数

python - Django-干草堆-如何使仅项目的子集可搜索?

python - 如何在 Enforcing 模式下使用 SELinux 运行 Flask+Nginx+uWSGI?

django - 使用 Heroku/gunicorn/django 配置部署时出现问题

python - 无法使用 gunicorn 运行 Tornado 应用程序

python - 请求 URL 后推送数据

html - 如何使 PDF 输出看起来与 HTML 输出完全一样

python - 查询较少的父对象及其子对象列表

javascript - 在django中长时间处理时显示加载gif?

python - Django 和 Python + uWSGI