django windows/Windows server IIS部署-保姆级教程

系统环境:windows server 2019

django环境:python 3.9 django 3.2.7

安装IIS

  1. 打开服务器管理仪表板,点击添加角色功能 image-20210926101027686

  2. 在添加角色向导中选择服务器选择,下一步 image-20210926101909966

  3. 选中 Web服务器(IIS),弹出界面,点击添加,一直点击下一步 ,直到出现安装,点击安装,image-20210926102150635

    image-20210926102631881

  4. 等待IIS安装完成后关闭

安装CGL

1.找到之前安装的IIS image-20210926103900467
2. 点开web服务器
image-20210926104106410
3. 点开应用程序开发,选中CGL,随后一直到下一步,直到安装
image-20210926104246250> 在这里插入图片描述
安装成功后,测试CGL,在浏览器打开 127.0.0.1,出现如下界面即可在这里插入图片描述

安装python

下载python

  1. 浏览器下载,python官网
  2. cmd下载
    下面命令下载到当前目录
certutil.exe -urlcache -split -f 复制好的python下载链接

安装python

  1. 双击下载后的python安装包,选中添加到路径后点击 install now 在这里插入图片描述
  2. 出现如下界面安装成功,点击close 在这里插入图片描述
  3. 验证安装
    打开cmd 输入python 出现如下界面则安装成功
    在这里插入图片描述

安装python 服务程序环境

安装程序环境

在存在包文件地址栏输入cmd,打开cmd
在这里插入图片描述
输入安装命令,等待安装完毕

pip install -i  https://pypi.doubanio.com/simple/ -r plist.txt

安装服务

本来我准备使用uwsgi的,结果发现windows无法使用uwsgi,找了好久发现windows可以用wfastcgi代替
安装wfastcgi

pip install -i https://pypi.doubanio.com/simple/ wfastcgi

安装好后启动服务

wfastcgi-enable

如下图,启动后会给出Python路径和wfastcgi的路径显示出来,我们需要把这个路径复制出来,保存好,后边用得着。在这里插入图片描述

到这里环境已经配置完毕,下面开始配置django

django 配置

  1. 将django文件项目上传到服务器后解压到工作目录(IIS 默认工作目录是 C:\inetpub\wwwroot)
  2. 在项目根目录里新建一个web.config配置文件,放入以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <modules>
            <remove name="WebDAVModule"/>
        </modules>
        <handlers>
            <remove name="WebDAV"/>
            <add name="Python FastCGI"
                 path="*"
                 verb="*"
                 modules="FastCgiModule"
                 scriptProcessor="*"
                 resourceType="Unspecified"
                 requireAccess="Script"/>
        </handlers>
    </system.webServer>
    <appSettings>
        <add key="WSGI_HANDLER" value="django.core.wsgi.get_wsgi_application()"/>
        <add key="PYTHONPATH" value="*"/>
        <add key="DJANGO_SETTINGS_MODULE" value="*"/>
    </appSettings>
</configuration>

注:scriptProcessor 后的参数是我们启动wfastcgi复制下的地址.
注:PYTHONPATH 的 value是我们项目的地址 如 C:\www\server
注:DJANGO_SETTINGS_MODULE 的 value 是我们项目的中的sttings所在,如server.settings

ISS部署django

  1. 在服务器管理器仪表盘中找到工具→IIS管理器,打开
    在这里插入图片描述
  2. 停止,删除IIS默认网站服务
    在这里插入图片描述 在这里插入图片描述
  3. 添加已经解压的django服务

选中网站→添加网站→填写信息

流程如下图,网站名称随意填写,物理路径一定要选正确
在这里插入图片描述
在这里插入图片描述
按照上面填写正确后点击确定
4. 修改应用程序池熟悉

点击应用程序池→选中服务→高级设置
在这里插入图片描述
找到进程模型→标识后双击后面的ApplicationPoolIdentity 将其改为LocalSystem后点确定
在这里插入图片描述

  1. 重启服务,浏览网页,看django是否正常运行
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

全文到这里就结束了,实话说这个IIS代理django的帖子是真心多,可是没有一个是全的,心累,踩了不少坑,一天折腾下来就做了一件事儿.喜欢,有用点个收藏.如果对你没有用请留言遇到的问题,
原创不易,转载请注明出处.
注:我的django关闭了debug,切没有跟路径的url配置,所以报错.到这一步了,django IIS部署已经完成了,其实该有一个IIS代理的静态设置,可是那玩意儿比nginx麻烦多了就不做了.静态文件我都走nginx代理了

修改一下吧

忽然发现静态文件走这个还是挺香,只需要做下面两步就好
1.添加虚拟路径
在这里插入图片描述
在这里插入图片描述
2. 在静态文件夹下创建文件 web.config
在这里插入图片描述
文件中写如下代码

<?xml version="1.0" encoding="UTF-8"?>
   <configuration>
         <system.webServer>
         	<handlers>
         		<clear/>
         		<add name="StaticFile" path="*" verb="*" modules="StaticFileModule" resourceType="File" requireAccess="Read" />
        	 	</handlers>
         </system.webServer>
</configuration>      

做完以上重启服务器就好了

我发现有小伙伴说按我的教程做了以后会有500.19报错,如下

HTTP 错误 500.19 - Internal Server Error

在这里插入图片描述
如果出现这种情况,用管理员权限在cmd中运行下面端口就可以了

%windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/handlers
%windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/modules

在这里插入图片描述
不要再powershell中运行哦,会报错

在这里插入图片描述

  • 13
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
Traceback (most recent call last): File "/opt/cloudera/parcels/CDH-7.1.7-1.cdh7.1.7.p1046.30409922/lib/hue/desktop/core/src/desktop/lib/wsgiserver.py", line 1228, in communicate File "/opt/cloudera/parcels/CDH-7.1.7-1.cdh7.1.7.p1046.30409922/lib/hue/desktop/core/src/desktop/lib/wsgiserver.py", line 589, in respond File "/opt/cloudera/parcels/CDH-7.1.7-1.cdh7.1.7.p1046.30409922/lib/hue/desktop/core/src/desktop/lib/wsgiserver.py", line 601, in _respond File "/opt/cloudera/parcels/CDH-7.1.7-1.cdh7.1.7.p1046.30409922/lib/hue/build/env/lib/python2.7/site-packages/Django-1.11.29-py2.7.egg/django/core/handlers/wsgi.py", line 157, in __call__ File "/opt/cloudera/parcels/CDH-7.1.7-1.cdh7.1.7.p1046.30409922/lib/hue/build/env/lib/python2.7/site-packages/Django-1.11.29-py2.7.egg/django/core/handlers/base.py", line 124, in get_response File "/opt/cloudera/parcels/CDH-7.1.7-1.cdh7.1.7.p1046.30409922/lib/hue/build/env/lib/python2.7/site-packages/Django-1.11.29-py2.7.egg/django/core/handlers/exception.py", line 43, in inner File "/opt/cloudera/parcels/CDH-7.1.7-1.cdh7.1.7.p1046.30409922/lib/hue/build/env/lib/python2.7/site-packages/Django-1.11.29-py2.7.egg/django/core/handlers/exception.py", line 93, in response_for_exception File "/opt/cloudera/parcels/CDH-7.1.7-1.cdh7.1.7.p1046.30409922/lib/hue/build/env/lib/python2.7/site-packages/Django-1.11.29-py2.7.egg/django/core/handlers/exception.py", line 143, in handle_uncaught_exception File "/opt/cloudera/parcels/CDH-7.1.7-1.cdh7.1.7.p1046.30409922/lib/hue/desktop/core/src/desktop/views.py", line 415, in serve_500_error File "/opt/cloudera/parcels/CDH-7.1.7-1.cdh7.1.7.p1046.30409922/lib/hue/desktop/core/src/desktop/lib/django_util.py", line 241, in render File "/opt/cloudera/parcels/CDH-7.1.7-1.cdh7.1.7.p1046.30409922/lib/hue/desktop/core/src/desktop/lib/django_util.py", line 154, in _render_to_response File "/opt/cloudera/parcels/CDH-7.1.7-1.cdh7.1.7.p1046.30409922/lib/hue/desktop/core/src/desktop/lib/django_mako.py", line 127, in render_to_response File "/opt/cloudera/parcels/CDH-7.1.7-1.cdh7.1.7.p1046.30409922/lib/hue/desktop/core/src/desktop/lib/django_mako.py", line 114, in render_to_string_normal File "/opt/cloudera/parcels/CDH-7.1.7-1.cdh7.1.7.p1046.30409922/lib/hue/desktop/core/src/desktop/lib/django_mako.py", line 89, in get_template File "/opt/cloudera/parcels/CDH-7.1.7-1.cdh7.1.7.p1046.30409922/lib/hue/build/env/lib/python2.7/site-packages/Mako-1.0.7-py2.7.egg/mako/lookup.py", line 261, in get_template TopLevelLookupException: Cant locate template for uri '500.mako'
06-09
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

辉煌仪奇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值