如何使用 IIS 8 设置 Django?

如何使用 IIS 8 设置 Django?

我以前曾尝试在 Windows 8 开发人员预览版中的 IIS 8 下运行 Django。现在 Windows 8 消费者预览版已经发布,我想知道我是否可以获得一些关于在 IIS 中设置 Django 的详细说明。

我该如何进行这个过程 - 我几乎不知道从哪里开始。我需要特定的 ISAPI 模块吗?

答案1

这个过程并不简单,但可以通过以下步骤实现:

  1. 首先,下载并安装Python 2.6。(我建议使用 Python 2.6 而不是 Python 2.7 的原因是 PyISAPIe 模块支持的最新 Python 版本是 Python 2.6。)记下您安装 Python 的位置(C:\Python26如果我没记错的话,默认情况下是这样的)。

  2. 右击计算机,点击属性。点击左侧的高级系统设置。

    在此处输入图片描述

  3. 单击高级选项卡,然后单击环境变量按钮。在下方列表框中找到 Path:

    在此处输入图片描述

  4. 点击“编辑…”按钮,到末尾的变量值处插入;C:\Python26(分号加上你安装Python的路径):

    在此处输入图片描述

  5. 单击“确定”关闭所有对话框。

  6. 接下来,下载最新版本的 PyISAPIe这里. 将档案内容提取到某处并打开目录。

  7. 接下来打开控制面板,点击程序和功能,点击左侧的“打开或关闭 Windows 功能”。

    在此处输入图片描述

  8. 浏览到 Internet 信息服务 -> 万维网服务 -> 应用程序开发功能,然后确保已选中 ISAPI 扩展。

    在此处输入图片描述

  9. 应用更改,然后打开 IIS 管理器。双击处理程序映射图标。

    在此处输入图片描述

  10. 点击右侧的添加模块映射。在出现的对话框中,输入以下信息:

    • 请求路径:*
    • 模块:Isapi模块
    • 可执行文件(可选): [浏览到您解压 PyISAPIe 的路径并选择PyISAPIe.dll]
    • 姓名:通过 PyISAPIe 进行 Python


    它看起来应该是这样的:

    在此处输入图片描述

  11. 在关闭对话框之前,单击“请求限制”,取消选中“仅当请求映射到:时才调用处理程序”,然后单击“确定”。还单击“确定”关闭“添加模块映射”对话框(如果系统询问您是否要将带有“允许”条目的扩展添加到 ISAPI 和 CGI​​ 限制列表,请单击“是”)。

    在此处输入图片描述

  12. 下一步是下载Django. 将存档内容提取到某处(注意位置)。打开命令提示符(您可以通过按Win+ R,输入cmd并点击 来执行此操作Enter)并输入,cd然后输入您将 Django 提取到的位置:

    在此处输入图片描述

  13. Enter,输入cd dj,然后按Tab。这样应该会完成 Django 文件夹的路径,您可以按Enter打开目录。现在输入python setup.py install

    在此处输入图片描述

  14. 现在您需要创建 Django 项目。为了举例说明,我们将在 下创建项目C:\Django。在命令窗口中,键入以下命令,然后键入Enter

    • cd C:\
    • mkdir Django
    • cd Django
    • python C:\Python26\Lib\site-packages\django\bin\django-admin.py startproject test


    这将创建一个名为“测试”的项目。

  15. 一旦该过程成功完成,剩下的最后一项任务就是将 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='/')
    
  16. 将 Http 目录复制到C:\Python26\Lib\site-packages(或者如果您在其他地方安装了 Python,则复制到适当的目录)。

  17. 重新启动 IIS(您可以通过单击 IIS 管理器右侧的“重新启动”来执行此操作):

    在此处输入图片描述

  18. 如果一切正常,你应该可以转到http://本地主机查看你的新 Django 网站:

    在此处输入图片描述


进一步说明和补充

  • 我已经自己为 Python 2.7 编译了 PyISAPIe(32 位和 64 位),并将文件上传到此处:http://www.box.com/s/a5fb1b21fcdf738d2590

  • 在步骤 #6 中,您需要确保pyisapie.dllIIS 至少具有读取权限的目录中。如果不考虑这一点,将导致奇怪的错误。

答案2

您将在此博客文章中找到有关如何在 IIS8 上安装 Django 的详细指南:

在 IIS 上安装 Django:分步教程

简而言之,需要完成以下步骤:

  • 在 Windows 上安装 Python
  • 安装 Django
  • 安装 Django 项目
  • 运行测试 HTTP 服务器
  • 配置并运行 FastCGI 服务器
  • 配置 IIS 以运行 FastCGI 应用程序
  • 配置静态资源和媒体目录
  • 关于数据库的说明(关于某些数据库兼容驱动程序的说明)
  • 故障排除(有关如何排除故障的说明)

希望有帮助!

答案3

另一个选择是使用 django-windows-tools,尽管它已经有几年没有更新了。它只是在 IIS 中为您设置 FastCGI 模块,因此您不必担心使用 PyISAPIe。

https://github.com/antoinemartin/django-windows-tools

相关内容