Django、wsgi、py。有什么区别?

Django、wsgi、py。有什么区别?

我正在尝试在我的 cpanel 系统上启动并运行 django 应用程序。我已经安装了 mod_wsgi,并按照此处的指南进行操作: http://www.nerdydork.com/setting-up-django-on-a-whm-cpanel-vps-liquidweb.html

但是,我现在很困惑,因为我不知道下一步该怎么做。该应用程序有 .py 文件,我可以通过以下命令运行它:python manage.py runserver 211.144.131.148:8000

但是,这是通过命令行并绑定到端口 8000。我想使用 Apache。

问题是,该教程没有进一步介绍如何让 apache 识别 .py 文件并按照我的需要运行应用程序。我下一步该怎么做?

答案1

如果您使用的是mod_wsgi,则您不希望 Apache 识别您的.py文件。令人困惑,不是吗?在这里,让我解释一下...

WSGI 模块为 Apache 和 Python 进程之间提供了某种形式的互连。可以说,它是一个标准化的网关接口(Web 服务器网关接口)。

这是有关使用 Apache 配置 Django 1.1 的官方 Django 文档 &mod_wsgi

一般来说,你只需要:

WSGIScriptAlias / /path/to/mysite/apache/django.wsgi

然后您需要定义一个 WSGI 应用程序,它作为 Django 应用程序的前端:

导入操作系统
导入系统

os.environ['DJANGO_SETTINGS_MODULE'] = '我的网站.settings'

导入 django.core.handlers.wsgi
应用程序 = django.core.handlers.wsgi.WSGIHandler()

*请注意,这些示例是我从上面链接的文档中获取的。

现在,这会将 Apache 连接到 WSGI 应用程序,然后将您的应用程序绑定到该 WSGI 应用程序。WSGIScriptAlias 行只是告诉 Apache 将“/”或更低位置的所有请求发送到您的 WSGI 应用程序,该应用程序将管理 URL 路由。

我通常使用 FastCGI 和 Python flup 模块进行这样的部署,这有点复杂,但如果您有时间的话值得一试。

相关内容