当前位置 主页 > iis相关 >

windows 2008 server+IIS 7如何运行 django 1.11 + python 3.6

时间: 2018-09-13 14:43 栏目:iis相关

  缘起
  
  使用django开发了一个项目,客户的技术体系是全栈window的,所以要求我们提供把项目部署到windows服务器的服务。
  
  写这个原因是旧的在 windows 上运行python网站程序的文档,基本上全过时了。
  
  从macOS登陆windows服务器
  
  嗯,需要安装 Microsoft Remote Desktop,版本是 8.0.x。需要注意的是微软官网的下载链接是直接链接到app store,而该App在中国区不上架,所以下载不了。最后解决问题是同事在网上找到了个下载版。
  
  登陆的时候,还有一个要注意的就是在配置的session那里勾选Connect to admin session。也许只是用Administrator账号登陆的话才需要,我没试其它账号。
  
  注:MS Office 2011 for Mac 自带的那个RDC不行了,版本2.1.x的,一登陆就证书不对之类的,是登陆不上去的。
  
  安装 Python
  
  这个很容易,直接在python官网下载就行,我下载的是64位的版本,因为是64位的机器,需要往下拉一下页面才能找到,直接点Download按钮下载的是32位的。
  
  安装的时候,有两个地方要特别注意,一是要勾选Add to PATH,二是一定要把它安装到没有空格的路径下,比如c:\python36,不要使用默认的c:\Program files\python36,你在后面会被折腾死,我不会告诉你我浪费了一天的时间,最后重装python解决的。
  
  安装 wfastcgi
  
  在windows上跑django或其它python网站程序,用IIS是最正确的,使用 apache/nginx会更加难管理。但是IIS不支持wsgi,而django自1.7起就弃用了fastcgi,在1.9的时候更是删除了,所以我们编写的网站程序无法直接跑在IIS上,因为我们用的是1.11版本,太新了。
  
  wfastcgi是当前唯一、唯一、唯一可用可靠的把wsgi桥接到fastcgi的方案,之前花好几天看到的,基本上都过时了,那些基本django1.2/1.4版本写的文章,丢掉吧,别看了,完全没有用处。github上有个django-windows-tools的项目,也过时了,七八年前的了,别看了;也有一篇相关的文章,Installing Django on IIS: A Step-by-Step Tutorial流毒甚广,别看了。那些带有PyISAPIe、isapie-wsgi字样的,统统都不靠谱,见到就闪吧。
  
  wfastcgi感觉生命力会长久一些,因为它其实出自微软自身,根正苗红,也有Azure云计算的需要。开发它的团队是Python Tools for Visual Studio的那帮人,实力强劲。
  
  安装好python以后,开个Power Shell新窗口,运行pip install wfastcgi就可以安装成功了。然后再运行一下wfastcgi-enable命令启用它即可,成功运行后,会输出一个目录,告诉你可以把它加到配置文件(稍后讲)。
  
  安装 git
  
  当然了,首先要把项目的代码 clone 到本地。需要安装git,具体用法就不说了。不过安装的时候,有一个很重要的点,就是问你要使用哪个加密库。默认是使用 OpenSSL,我是原生党,所以改选了使用有windows native字样的那个,结果后来使用 git 的时候,验证账号密码一直出错,坑死爹爹了。切记这里不要乱选了。
  
  在这里说一下题外话,安装git的时候,可以把跟Cygwin相关的选项取消掉,使用GOW即可,非常好用,基本上常用的命令都有了,安装GOW之后,在Power Shell中用起来感觉跟在macOS的终端下的体验有得一拼。官网:https://github.com/bmatzelle/gow ,支持的命令列表:https://github.com/bmatzelle/gow/wiki/executables_list 。
  
  代码一定要用 manager.py runserver本地跑一下啦,只要依赖的包装好了,一般而言是没有问题的。然后可以进入下一步。
  
  配置 web.config
  
  在IIS中新建一个网站,把域名分配过去就好。然后在manager.py的同级目录新建一个文本文件web.config,里面的内容有个模板可以套:
  
      <?xml version="1.0" encoding="UTF-8"?>
  
  <configuration>
  
  <system.webServer>
  
  <handlers>
  
  <add name="Python FastCGI"
  
  path="*"
  
  verb="*"
  
  modules="FastCgiModule"
  
  scriptProcessor="<Path to Python>\python.exe|<Path to Python>\lib\site-packages\wfastcgi.py"
  
  resourceType="Unspecified"
  
  requireAccess="Script"/>
  
  </handlers>
  
  </system.webServer>
  
  <appSettings>
  
  <add key="WSGI_HANDLER" value="django.core.wsgi.get_wsgi_application()" />
  
  <add key="PYTHONPATH" value="<Path to Django App>" />
  
  <add key="DJANGO_SETTINGS_MODULE" value="<Django App>.settings" />
  
  </appSettings>
  
  </configuration>
  
  scriptProcessor的值,要改为前文说过的运行wfastcgi输出的那个值。PYTHONPATH的value要改为manager.py的那个目录,也就是你项目的根目录。DJANGO_SETTINGS_MODULE的value中的<Django App>要改为你的项目名。
  
  然后重启一下你的网站,域名没有错的话,应该就可以访问了。
  
  嗯,就是这么简单,这么霸道。但我不会告诉你我找资料的那240个小时的。
  
  如果你看到页面没有css样式了,应该是找不到静态文件,执行一下manager.py collectstatic应该就好了。
  
  另外,为了让静态文件的处理不经过Python这一层,建议往static和media目录下各放一个web.config文件,内容都是:
  
  记得如果你改过最前面的web.config文件中的name值,这里也要对应。这样就可以在获取静态文件的时候快一点了。
  
  参考:
  
  https://pypi.python.org/pypi/wfastcgi
  
  http://kronoskoders.logdown.com/posts/1074588-running-a-django-app-on-windows-iis
缩小 缩小 缩小 缩小
IIS7整站下载工具 IIS7批量查询排名 IIS7远程桌面连接工具 iis7-iis网站批量管理 iis7批量替换工具 IIS7服务器专用下载工具 IIS7日志分析工具 IIS7批量PING,服务器批量添加网卡IP小工具 IIS7远程同步备份工具
IIS7网站监控 站群批量SEO查询 批量获取排名域名 批量关键词排名查询 模拟各种蜘蛛 批量友情链接监测 批量检测死链 搜索引擎大全 批量查询外链
批量查询网站标题 批量查询KeyWords 批量查询描述 批量查询网站IP 批量百度收录查询 批量查询百度日收录 批量查询百度周收录 批量查询百度月收录 批量查询360总收录 批量查询360日收录 批量查询网站年龄 批量查询360PC权重 批量查询爱站移动权重 批量查询站长移动权重 批量查询360移动权重 批量查询神马权重 批量查询谷歌PR 批量查询搜狗PR 批量查询百度反链 批量查询爱站首页反链 批量查询爱站内页反链 批量查询百度快照 批量查询搜狗快照 批量icp备案查询 批量网站ip地址查询 批量查询导出链接 批量查询百度V认证 批量查询百度安全 批量查询站长PC权重 批量查询爱站PC权重 批量查询搜狗总收录 站长资源大全 IIS7-cms大全 IIS7站群大全 IIS7虚拟空间大全 IIS7服务器大全 IIS7-VPS大全 服务器代购 站群专用 美国站群服务器 香港站群服务器 特供站群vps 亚洲服务器 菲律宾HS 韩国首尔 香港PCCW 香港沙田电信 香港PowerLine 日本多机房 新加坡多机房 韩国大带宽 香港新世界 香港Pangnet 台湾 美国服务器 加州RS 美国vps母鸡租用 洛杉矶MC 洛杉矶C3 特价促销区 洛杉矶NS 洛杉矶Cera高防 洛杉矶HS高防 SK高防 洛杉矶WX 加州RH 芝加哥AT VPS云主机 香港沙田电信 韩国首尔 香港Pangnet 新加坡SG 香港PL 洛杉矶SK 抗攻击 洛杉矶C3 日本大阪 洛杉矶Cera 抗攻击 洛杉矶MC 纽约 SSD 抗攻击 大容量备份VPS 国庆大促 俄罗斯