IIS没有使用PyISAPIe链接到Django

时间:2010-04-14 18:39:44

标签: python django iis pyisapie

我正在尝试在基于IIS的服务器上运行带有Django的站点。我按照主站点(http://code.djangoproject.com/wiki/DjangoOnWindowsWithIISAndSQLServer)上的所有说明进行了操作,然后用一篇非常好的文章(http://www.messwithsilverlight.com/2009/11/django-on-windows-server-2003-and-iis6/)仔细检查了它。

我成功地设置了IIS来读取.py文件。按照主要说明,我可以让服务器呈现Info.py.但是,我似乎无法让IIS和Django玩得很好。例如,如果我的虚拟目录是“abc”,那么如果我转到“localhost / abc /”,浏览器只会显示该文件夹的内容目录。此外,如果我设置了我的网址以便“/ dashboard / 1”将我带到某个页面,输入“localhost / abc / dashboard / 1”会给我一个“页面无法显示”的错误。

我很确定IIS根本就没有引用或与Django交互。有没有人有任何想法如何解决这个问题?

由于

2 个答案:

答案 0 :(得分:2)

以下是我遵循的原始说明,

基本说明:https://code.djangoproject.com/wiki/DjangoOnWindowsWithIISAndSQLServer 其他提示:http://whelkaholism.blogspot.ca/

  1. 你应该做的第一件事是安装Python 2.5或2.6,对于2.7你需要重新编译PyISAPIe,我还没有。 http://www.python.org/ftp/python/2.6/python-2.6.msi
  2. 您需要安装与您的Python解释器版本匹配的PyISAPIe版本,如果它们不匹配,它将失败。到达那里:http://sourceforge.net/projects/pyisapie/files/pyisapie/
  3. 将提取的文件夹从最后一步移到合适的位置(即C:)
  4. 你需要更改PyISAPIe.dll的安全设置,他们建议网络服务读取,但我设置了所有人,以确保没有这个问题
  5. 然后你必须 CUT AND PASTE (重要)PyISAPIe的Http文件夹到Python安装目录的Lib \ Site-Packages
  6. 接下来,您设置IIS(在运行中使用 inetmgr 打开管理器(winkey + r):
    • 添加新的虚拟目录,并允许在向导提示时执行ISAPI扩展
    • 在虚拟目录的属性中添加新的通配符扩展名,untick文件存在设置
    • 向指向dll的IIS管理器添加Web服务扩展,确保允许
  7. 从PyISAPIe文件夹中复制examples \ django \ Isapi.py并将其粘贴到Lib \ Site-Packages \ Http
  8. 在Isapi.py中,设置路径(即c:\ inetpub \ wwwroot \ web_site \ django_project)和DJANGO_SETTINGS_MODULE(即django_app .settings)
  9. 如果对文件进行了任何更改,请在命令提示符中使用 iisreset 来应用更改
  10. 以下是您可能会做的其他事情

    • 确保db文件的路径(如果使用了sqlite)没问题
    • 对模板位置设置执行相同的操作
    • 在您的网址和html文件中,确保路径以您为虚拟目录别名指定的名称开头(例如,在我们的示例中为web_site

    最后,您在使用CSS时可能会遇到困难。如果您有任何问题,请告诉我,我会更新我的帖子。

答案 1 :(得分:0)

使用任何网络服务器提供Django基本上涉及三个关键细节:

  1. 告诉网络服务器,“我想要你 提供由...提供的内容 这个模块调用python“
  2. 告诉python模块,“我希望你执行python代码 使用此文件中的详细信息“
  3. 告诉文件,“我希望你使用Django”
  4. 如果您正在为虚拟目录获取目录列表,那么您似乎应该调查VD设置以确保为该目录配置PyISAPIe(关键详细信息#1)。

    从您提到的文章:

      
        
    • 打开IIS管理控制台,然后创建一个新的虚拟目录   允许在执行时执行ISAPI扩展   向导提示。

           
          
      • 查看新文件夹的属性,然后单击   “配置”按钮(如果它是灰色的   out,先单击“创建”,然后添加一个   新的通配符扩展名(较低的   框),找到pyisapie.dll文件和   取消勾选“检查文件是否存在”   框。

      •   
      • 在IIS管理器中,转到“Web服务扩展”部分,然后单击此处   右键单击 - >添加新的Web服务   扩展

      •   
    •   
    • 给它命名(无所谓),添加pyisapie.dll   填写所需文件并检查   框用于将扩展状态设置为   允许的。

    •