如何使用IIS 8设置Django?


11

我过去曾尝试使Django在Windows 8 Developer Preview中的IIS 8下运行。既然Windows 8的使用者预览版已经发布,我想知道是否可以得到一些有关在IIS中设置Django的详细说明。

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

Answers:


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 Extensions。

    在此处输入图片说明

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

    在此处输入图片说明

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

    • 请求路径: *
    • 模块: IsapiModule
    • 可执行文件(可选): [浏览到提取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


    这将创建一个名为“ 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:// localhost来查看新的Django站点:

    在此处输入图片说明


进一步的说明和补充

  • 此后,我已经自己(32位和64位)编译了适用于Python 2.7的PyISAPIe,并在此处上传了文件:http : //www.box.com/s/a5fb1b21fcdf738d2590

  • 在步骤6中,您需要确保该pyisapie.dll目录位于IIS至少具有读取访问权限的目录中。不考虑这一点将导致奇怪的错误。


2
鲜血的回答乔治。+1
凯夫2012年

1
这个非常好的答案救了我
Trinh Hoang Nhu 2013年

谢谢,但我正在努力使其正常工作。您没有提到您创建IIS网站(在“服务器”>“站点”下)。不用吗 您是否使用默认网站/ DefaultAppPool?如果是这样,那么您将其指示为网站根目录是什么?另外:我怎么知道DLL正在工作?Http下的.py文件从未编译过,因此我认为请求不是由Python / Django处理的。
埃里克·莱本古斯

1

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

在IIS上安装Django:分步教程

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

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

希望有帮助!


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.