如何使用 IIS 8 设置 Django?

Nat*_*man 11 iis django

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

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

Nat*_*man 19

此过程并非微不足道,但可以使用以下步骤:

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

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

    在此处输入图片说明

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

    在此处输入图片说明

  4. 单击“编辑...”按钮并转到最后的变量值并插入;C:\Python26(分号加上您安装 Python 的路径):

    在此处输入图片说明

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

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

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

    在此处输入图片说明

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

    在此处输入图片说明

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

    在此处输入图片说明

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

    • 请求路径: *
    • 模块: IsapiModule
    • 可执行文件(可选): [浏览到您提取 PyISAPIe 的路径并选择PyISAPIe.dll]
    • 名称: Python 通过 PyISAPIe


    它应该是这样的:

    在此处输入图片说明

  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


    这将创建一个名为“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='/')
    
    Run Code Online (Sandbox Code Playgroud)
  16. 将 Http 目录复制到C:\Python26\Lib\site-packages(或适当的目录,如果您在其他地方安装了 Python)。

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

    在此处输入图片说明

  18. 如果一切正常,您应该可以访问http://localhost来查看您的新 Django 站点:

    在此处输入图片说明


进一步的注释和补充

  • 从那以后,我自己为 Python 2.7 编译了 PyISAPIe(32 位和 64 位)并将文件上传到这里:http : //www.box.com/s/a5fb1b21fcdf738d2590

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

  • 该死的好回答乔治。+1 (2认同)