之前想把django部署在iis下,但是苦于一直找不到一个完整得部署资料,所以把我的部署过程记录下来,给有需要得朋友,希望你们可以少走弯路
我部署的环境是,win10专业版,django 3.x
安装CGI

安装虚拟环境,这样的好处是每个网站的包都相对独立,如果IIS下有多个django网站的话不会相互有干扰
pip install virtualenv
pip install virtualenvwrapper-win
创建一个虚拟环境
mkvirtualenv djangodemo

创建完虚拟环境后我们可以通过workon来查看我们系统中有哪些虚拟环境,也可以切换虚拟环境,创建好的虚拟环境在这个路径下C:\Users\你的用户名\Envs\
workon djangodemo
例如上面的命令就可以切换到我们刚创建的虚拟环境中,切换后会看到命令行的前面有虚拟环境的前缀

在iis下创建一个网站,我这里的网站叫做djangodemo

把我们网站文件拷贝进去

在运行命令行,并且切换到djangodemo虚拟环境

在当前虚拟环境下把我们需要用到的包安装一下,一个干净的django包基本上包含这几个,当然我这个部署的环境是没有连接数据库的,如果连接数据库肯定不止这几个
asgiref==3.2.3
Django==3.0.4
pytz==2019.3
sqlparse==0.3.1
wfastcgi==3.0.0

待我们安装完毕后,我们去到虚拟环境目录下把安装的wfastcgi.py拷贝到网站目录的根目录下

拷贝到网站根目录下

在根目录下创建一个web.config文件,内容如下
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="djagohandler" path="*" verb="*" modules="FastCgiModule" scriptProcessor="C:\Users\patch\Envs\djangodemo\Scripts\python.exe|C:\inetpub\wwwroot\djangodemo\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="C:\inetpub\wwwroot\djangodemo" />
<add key="DJANGO_SETTINGS_MODULE" value="djangodemo.settings" />
<add key="WSGI_LOG" value="C:\inetpub\wwwroot\djangodemo\error.log" />
</appSettings>
</configuration>
这里需要注意一下,这个配置中的两个路径分别指向虚拟环境的python.exe以及网站下的wfastcgi.py,其他位置根据自己网站路径改一下即可
scriptProcessor="C:\Users\patch\Envs\djangodemo\Scripts\python.exe|C:\inetpub\wwwroot\djangodemo\wfastcgi.py"
还有这里的value需要改成你的项目名称
<add key="DJANGO_SETTINGS_MODULE" value="你的项目名称.settings" />
然后打开网站的处理映射

这里处理映射程序其实都已经通过web.config配置好了


这里有一点需要注意的是,虽然处理映射配置都写好了,但是好像还是需要在这点一下确定,等出现提示的时候点“是”即可

然后修改应用程序池

右键设置应用程序池
把标识改为LocalSystem

设置弄完了,再重启一下IIS中的网站,就能看到django正常运行再iis下了

网友评论