Django 2.0在Windows Server 2008 R2的IIS 7.5下的部署

前段时间将自己捣鼓写的一个Django小网站部署到了阿里云服务器上,结果由于服务器操作系统是Windows Server,在IIS上的部署非常蛋疼,各种莫名其妙的问题和错误,折腾了几十个小时终于搞定了,想了想好记性不如烂笔头,还是花点时间详细记录一下整个过程的步骤吧。

系统及软件版本:

Windows Server 2008 R2 Enterprise Service Pack 1
IIS 7.5
Python 3.4.2 32-bit
WFastCGI 2.1 Gateway for IIS and Python 3.4
Django 2.0
其实后面几个软件版本我是真的有点醉,我本来是自己安装的Python 3.6.3 64-bit,然后通过pip命令安装了Django 2.0和wfastcgi 3.0.0,但是在部署以后总是出现莫名其妙的HTTP错误500.0 – Internal Server Error 发生未知FastCGI错误,实在是没法解决,最后老老实实用Microsoft Web Platform Installer安装居然成了,一口老血……这里面的错误根源我严重怀疑是wfastcgi 3.0.0!

具体部署步骤:

1. 安装功能IIS 7.5,添加服务CGI。
打开服务器管理器-角色,右侧选择添加功能:
20171212_1.1
选择Web服务器(IIS),角色服务务必勾选应用程序开发-CGI:
20171212_1.2
完成安装。
2. 通过Microsoft Web Platform Installer 5.0安装Python以及WFastCGI。
从https://www.microsoft.com/web/downloads/platform.aspx上下载Microsoft Web Platform Installer 5.0并运行,搜索Python,安装Python 3.4.2 32-bit和WFastCGI 2.1 Gateway for IIS and Python 3.4:
20171212_2
3. 将Python相关路径添加到环境变量,通过pip安装Django。
给环境变量添加C:\Python34\;C:\Python34\Scripts,命令行运行pip install django,这样就完成了Django 2.0的安装。
4. 创建一个Django网站,测试能否运行起来。
cd C:\inetpub\wwwroot\
django-admin startproject mysite
cd mysite
python manage.py runserver
打开浏览器,输入http://localhost:8000/应该能够看到Django的测试服务器运行成功:
20171212_4
不过这只是开发用的,还得部署到实际生产环境IIS下才行,这后面才是最坑的……
5. 将wfastcgi.py文件复制到网站根目录下。
进入C:\Python34\Scripts,将wfastcgi.py文件复制到C:\inetpub\wwwroot\mysite,注意和manage.py在同一个文件夹下。
6. 在IIS下部署配置网站。
进入IIS,添加网站:
20171212_6.1
填写相关参数,这里我选择端口为2333:
20171212_6.2
进入刚建立的网站,选择处理程序映射:
20171212_6.3
添加模块映射,请求路径*,模块选择FastCgiModule,可执行文件填写C:\Python34\python.exe|C:\inetpub\wwwroot\mysite\wfastcgi.py,前面是python.exe的路径,后面是wfastcgi.py文件的路径,名称比较随意,我这里就写DjangoWebHandler了。请求限制里面默认没有勾选,不用改动:
20171212_6.4
返回主页,选择FastCGI设置:
20171212_6.5
选择刚建立的FastCGI应用程序,修改环境变量
20171212_6.6
需要添加的变量有3个:
Name: WSGI_HANDLER
Value: django.core.wsgi.get_wsgi_application()
Name: PYTHONPATH
Value: C:\inetpub\wwwroot\mysite
Name: DJANGO_SETTINGS_MODULE
Value: mysite.settings
20171212_6.7
至此,一个简单的Django小网站就在服务器上部署完成啦!!!

参考文献:

1. Running Django on Windows using an IIS Server https://www.youtube.com/watch?v=cgTFrAwXeoI
2. IIS8部署Django项目 http://blog.csdn.net/elonpage/article/details/52645562

Advertisements

About 后圣域传说

在下便是后圣域传说,平日网名guyigenius。热衷ACG,略懂书法,爱好广泛,热爱生活。本性狂妄自大,现今迷途知返。想法稀奇古怪,平日略带中二,一度对未来很迷茫,但是心中总有那点梦想。为此义无反顾,探寻真理,宁为枭雄。 https://guyigenius.wordpress.com/
此条目发表在浪淘沙分类目录。将固定链接加入收藏夹。

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  更改 )

Google+ photo

You are commenting using your Google+ account. Log Out /  更改 )

Twitter picture

You are commenting using your Twitter account. Log Out /  更改 )

Facebook photo

You are commenting using your Facebook account. Log Out /  更改 )

w

Connecting to %s