我以前曾尝试在 Windows 8 开发人员预览版中的 IIS 8 下运行 Django。现在 Windows 8 消费者预览版已经发布,我想知道我是否可以获得一些关于在 IIS 中设置 Django 的详细说明。
我该如何进行这个过程 - 我几乎不知道从哪里开始。我需要特定的 ISAPI 模块吗?
答案1
这个过程并不简单,但可以通过以下步骤实现:
首先,下载并安装Python 2.6。(我建议使用 Python 2.6 而不是 Python 2.7 的原因是 PyISAPIe 模块支持的最新 Python 版本是 Python 2.6。)记下您安装 Python 的位置(
C:\Python26
如果我没记错的话,默认情况下是这样的)。右击计算机,点击属性。点击左侧的高级系统设置。
单击高级选项卡,然后单击环境变量按钮。在下方列表框中找到 Path:
点击“编辑…”按钮,到末尾的变量值处插入
;C:\Python26
(分号加上你安装Python的路径):单击“确定”关闭所有对话框。
接下来,下载最新版本的 PyISAPIe这里. 将档案内容提取到某处并打开目录。
接下来打开控制面板,点击程序和功能,点击左侧的“打开或关闭 Windows 功能”。
浏览到 Internet 信息服务 -> 万维网服务 -> 应用程序开发功能,然后确保已选中 ISAPI 扩展。
应用更改,然后打开 IIS 管理器。双击处理程序映射图标。
点击右侧的添加模块映射。在出现的对话框中,输入以下信息:
- 请求路径:*
- 模块:Isapi模块
- 可执行文件(可选): [浏览到您解压 PyISAPIe 的路径并选择
PyISAPIe.dll
] - 姓名:通过 PyISAPIe 进行 Python
它看起来应该是这样的:在关闭对话框之前,单击“请求限制”,取消选中“仅当请求映射到:时才调用处理程序”,然后单击“确定”。还单击“确定”关闭“添加模块映射”对话框(如果系统询问您是否要将带有“允许”条目的扩展添加到 ISAPI 和 CGI 限制列表,请单击“是”)。
下一步是下载Django. 将存档内容提取到某处(注意位置)。打开命令提示符(您可以通过按Win+ R,输入
cmd
并点击 来执行此操作Enter)并输入,cd
然后输入您将 Django 提取到的位置:按Enter,输入
cd dj
,然后按Tab。这样应该会完成 Django 文件夹的路径,您可以按Enter打开目录。现在输入python setup.py install
:现在您需要创建 Django 项目。为了举例说明,我们将在 下创建项目
C:\Django
。在命令窗口中,键入以下命令,然后键入Enter:cd C:\
mkdir Django
cd Django
python C:\Python26\Lib\site-packages\django\bin\django-admin.py startproject test
这将创建一个名为“测试”的项目。一旦该过程成功完成,剩下的最后一项任务就是将 PyISAPIe 连接到 Django。为此,返回到您将 PyISAPIe 解压到的目录并查找 Http 目录。里面有一个文件
Isapi.py
。在文本编辑器中打开它并将内容替换为以下内容:from django.core.handlers.wsgi import WSGIHandler as DjangoHandler from Http.WSGI import RunWSGI from Http import Env import os, sys sys.path.append('C:\Django') os.environ['DJANGO_SETTINGS_MODULE'] = 'test.settings' def Request(): PathInfo = Env.PATH_INFO if not PathInfo.startswith('/'): return True for Excl in ['/media']: if PathInfo.startswith(Excl): return True return RunWSGI(DjangoHandler(), Base='/')
将 Http 目录复制到
C:\Python26\Lib\site-packages
(或者如果您在其他地方安装了 Python,则复制到适当的目录)。重新启动 IIS(您可以通过单击 IIS 管理器右侧的“重新启动”来执行此操作):
如果一切正常,你应该可以转到http://本地主机查看你的新 Django 网站:
进一步说明和补充
我已经自己为 Python 2.7 编译了 PyISAPIe(32 位和 64 位),并将文件上传到此处:http://www.box.com/s/a5fb1b21fcdf738d2590
在步骤 #6 中,您需要确保
pyisapie.dll
IIS 至少具有读取权限的目录中。如果不考虑这一点,将导致奇怪的错误。
答案2
您将在此博客文章中找到有关如何在 IIS8 上安装 Django 的详细指南:
简而言之,需要完成以下步骤:
- 在 Windows 上安装 Python
- 安装 Django
- 安装 Django 项目
- 运行测试 HTTP 服务器
- 配置并运行 FastCGI 服务器
- 配置 IIS 以运行 FastCGI 应用程序
- 配置静态资源和媒体目录
- 关于数据库的说明(关于某些数据库兼容驱动程序的说明)
- 故障排除(有关如何排除故障的说明)
希望有帮助!
答案3
另一个选择是使用 django-windows-tools,尽管它已经有几年没有更新了。它只是在 IIS 中为您设置 FastCGI 模块,因此您不必担心使用 PyISAPIe。