Size: 4204
Comment:
|
Size: 4206
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 43: | Line 43: |
[[PageComment2]] | ##[[PageComment2]] |
说明
这个东西已经不推荐使用。要在IIS跑django,请使用: http://code.google.com/p/pyisapi-scgi
D4I (Django For IIS,暂定名)
文件已更新,适用于最新版的Django. 下载后,d4i.py_2006-01-08 改名为d4i.py . 另一个文件也要这样改名.
功能描述
- 帮助开发者在IIS上使用Django
已知缺陷
- 目前静态文件还不能直接交给IIS处理,还是通过Django来处理的. 这个问题正在改进中
静态文件不是在 iis 下另外建个虚拟目录不就搞定了? -- HuangYi
- 如果把django设到IIS的一个站点(非虚拟目录),那么,访问这个站点下的所有路径,都人交到django去处理了。IIS好像不能像Apache那样可以指定某个路径是静态的。--[:torry:头太晕]
我是说另外单独建个虚拟目录,直接通过 ip 地址访问静态文件,然后在 settings 中配置一下 url 前缀,我就是这么干的。另外其他部分我是基本按照[http://code.djangoproject.com/wiki/DjangoOnWindowsWithIISAndSQLServer 这上面]说的配的,不知道你有没有看过。
- 如果把django设到IIS的一个站点(非虚拟目录),那么,访问这个站点下的所有路径,都人交到django去处理了。IIS好像不能像Apache那样可以指定某个路径是静态的。--[:torry:头太晕]
- 问题已解决,原来是自己对IIS不熟悉,只要新建一个media虚拟目录,然后将虚拟目录中的Application Extension Mapping那一项remove了就可以了。
文件列表
- attachment:d4i.py_2007-4-23 Django的Handler
- attachment:d4iisapi.py_2006-01-08 ISAPI代码
- attachment:readme.txt 本文内容
运行环境
Python2.4 http://www.python.org
activepython2.4 或 pywin32 http://www.activestate.com/python.plex
配置方法
- 将d4i.py 复制到 C:\Python24\Lib\site-packages\Django-0.95-py2.4.egg\django\core\handlers目录下
- 将d4iisapi.py复制到一个目录下(任何的).
- 直接双击d4iisapi.py 会在相同目录下生成一个_d4iisapi.dll , 同时会在iis的默认站点建立一个虚拟目录.不用的话,可以删掉这个虚拟目录 . 也可以直接将C:\Python24\Lib\site-packages\isapi目录下的PyISAPI_loader.dll复制到相同目录下, 并改名为_d4iisapi.dll
- 新建站点或虚拟目录.在站点或虚拟目录的属性窗口中," Home Directory" 标签页, 点击"Configuration"按钮打开"Application Configuration"对话框. 在"Wildcard application maps"中,点" Insert"按钮,打开"Add/Edit Application Extension Mapping"对话框. 点"Browse"按扭选择刚才的_d4iisapi.dll . 去掉"Verify that file exists"选框, 然后OK
- 我用的是英文版,真累人.... :P
- 忘了说了.站点或虚拟目录的"Home Directory"标签页中的"Local Path"项要设为你的Django站点的目当.也就是包含你的settings.py和urls.ppy两个文件的那个目录.
- 别忘了把那两个目录的权限设置一下.(我调试的时候,就是因为权限的问题,多花费了一天时间啊.)
今天升级到了python2.5和activepython2.5,发现了一个新的问题。activepython2.5的PyISAPI_loader.dll出现了一个新的问题,_d4iisapi.dll不能找到同一目录下的d4iisapi.py,必须将d4iisapi.py放到python的lib目录下,否则会出错。
IIS中,站点属性目录权限标签中所使用的访问用户(默认为IUSR),应使用具有administrator权限的用户,否则在import时会出错。 这个问题我一直没有找到好的解决办法,IIS的权限规则没搞清。
如果要使用django.contrib.auth,请在IIS站点属性的目录安全性中,将集成windows认证那一项去掉。否则会出错。
修改程序后不用重启IIS服务的方法: 在IIS的Application Pools中新建一个Application Pool,例如名字为d4i , 在你要使用django的站点属性里,Home Directory标签页中,设置Application Pool项为刚才新建的d4i. 这样,当修改程序后,只要重新启动这个名为d4i的application pool即可生效.不影响其它站点.
感谢
- 感谢limodou, Dreamingk(天成), 刘鑫, 等等几位老大的指导. (人数太多,不一一列举...)
- 感谢jejwe帮忙测试。
[:torry:头太晕] [email protected]