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