IIS 部署Django网站流程
很多刚接触Django 的同学们,刚刚用Django写了个网站,在本地Django集成的服务器上已经运行起来了,接下来要将网站部署到生产环境中却满头雾水,不知如何下手,我也曾遇到这样的问题,也是只能搜索摸索部署,现在我就已IIS为服务器说明Django网站的部署过程
假设您的服务器是从阿里云新购置的,无任何配置,具体的部署流程大体可概括为:1、配置Django运行环境。2、配置网站 。3、配置IIS服务器,接下来我将一一介绍流程
一、配置运行环境
在服务上安装IIS,注意必须安装CGI

安装Python 环境
Django 是Python下的一个网站开发框架,所以要先在服务器上配置Python运行环境,Python环境建议使用 Anaconda,Anaconda安装方便,可以随时虚拟出你想要的Python运行环境,使用非常简单。
直接官网下载,下一步,下一步安装即可,安装完打开Anaconda发现 Anaconda默认给你创建了一个Python 的运行环境并且已经安装的常用的一些库比如PIP

同时也有了命令行工具

安装wfastcgi模块(我已经安装过了这里不再显示安装)

至此Python的运行环境已经配置好了,
如网站需要数据库请安装数据库
二、配置网站
运行环境已经搭建好了下一步就是配置网站了
第一步 上传网站 ,到底上传网站的那些文件到服务器呢,很简单:上传 manage.py文件所在的目录到服务器即可(上传整个目录),最好上传到wwwroot目录中,方便权限设置
注意上传前最好 pip freeze >requirement.txt 一下,创建网站的依赖库

复制wfastcgi.py到网站目录
wfastcgi模块我们上面已经安装,复制wfastcgi.py到网站目录,wfastcgi所在目录为

上传后的样子

用Anaconda的命令行工具(注意先切换到网站所在目录)运行 pip install -r requirements.txt 在服务上安装网站需要的库
运行 python manage.py migrate 初始化数据库
经过以上步骤 应该可以 python manage.py runserver 端口 运行网站了
三、配置IIS
IIS中添加网站,绑定域名,这里和部署其他网站一样,就不在一一阐述了,注意阐述IIS配置的部分
进入你建立的站点,选择处理程序映射。请注意,必须进入你指定的网站里面,再添加模块映射,否则,映射会添加到你所有的网站里

添加模块映射。模块选择FastCgiModule,如果前面没有安装这个模块,请先安装哦。可执行文件对于本项目来说,实际上是必填的。此例中,C:\ProgramData\Anaconda3\python.exe|C:\inetpub\wwwroot\rizhaodarkmatter\wfastcgi.py。前面是python的路径,后面是wfastcgi.py文件的路径。实际上,如果wfastcgi.py文件路径直接引用python\Lib\site-packages目录下的文件也可以,不过就不可以部署多个Django网站了。

填写完参数后,选择请求限制,设置如图

确认添加后,程序映射添加成功

返回主页,进入FastCGI设置

选中新建的FastCGI应用程序,修改环境变量

需要添加的变量有3个:
Name: WSGI_HANDLER
Value: django.core.wsgi.getwsgiapplication()
Django项目目录
Name: PYTHONPATH
Value: C:\inetpub\wwwroot\rizhaodarkmatter
项目settings.py文件的位置
Name: DJANGOSETTINGSMODULE
Value: rizhaodarkmatter.settings
settings.py文件
至此,一个不带static静态文件的Django项目就可以在服务器上运行啦!!!
运行 python manage.py collectstatic 采集一下静态文件,这样在项目的跟目录会出现 static文件夹 这样一个包含静态文件的Django项目就运行起来了
但是运行后发现网站并没有加载静态文件,可是static 文件夹已经包含了所有静态文件呀,别着急 在静态文件所在目录(static目录)创建web.config文件

内容为:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<!-- this configuration overrides the FastCGI handler to let IIS serve the static files -->
<handlers>
<clear/>
<add name="StaticFile" path="*" verb="*" modules="StaticFileModule" resourceType="File" requireAccess="Read" />
</handlers>
</system.webServer>
</configuration>
OK ,大功告成~~~~~~
文档信息
版权声明:可自由转载(请注明转载出处)-非商用-非衍生
发表时间:2018年3月28日 10:44