Django学习记录9——在Windows上利用IIS部署Django

目录

零之前言

1.小前言

2.环境

3.准备样例代码

一.设置IIS

①打开添加角色功能

②设置添加角色功能

③验证IIS服务器设置

二.准备wfastcgi模块

①打包项目至服务器

②安装 wfastcgi

三.新建网站并设置

四.设置文件权限

五.静态资源设置

六.后记小结


零之前言

1.小前言

弄了三个下午,终于成功的Win Server上的IIS上部署跑通了我的Django。

2.环境

服务器是阿里云的Win Server 2012 R2;使用了宝塔Windows版;python版本3.6.6;Django版本2.1.5;MsSQL 2008;IIS是使用宝塔安装的IIS8.5

3.准备样例代码

为了验证Django,所以就随便的简单写了一个views:

一.设置IIS

这一步我也不知道具体要怎么弄,我也不知道要开通哪些插件/服务,但是还是能用就行了。

①打开添加角色功能

首先打开服务器管理器,找到IIS(如果你用宝塔下载了IIS8.5的话):

②设置添加角色功能

就是下面这一步,我也不知道要选哪些东西,但是根据绝大多数其他人的教程来说,确保勾选住CGI就行

这一步我还是不知道选什么,除了进去默认帮你选好的,我还多选了: IIS可承载Web核心,网络负载平衡,简单的TCP/IP服务。

简单的等待后,确保安装成功。

③验证IIS服务器设置

想办法找到你的IIS管理器(控制面板/系统安全/管理工具)

接下来选中两项目录,确保我们有如图的东西,因为这是我们等会儿设置的关键。

确保我们有FastCgiModule这个模块,否则我们后面是不成功的。

然后我们在Win Server上用浏览器测试一下,IIS服务器是否配置成功,虽然阿里云的内网地址不是127.0.0.1,但是我们任然可以用localhost访问我们的主页:(因为默认的是80端口,请确保阿里云和宝塔面板的80端口是放行了的)(当然一般都是默认放行的)

如果出现了以上界面,说明了我们目前来说是成功的,如果没有成功,那就检查检查步骤,或者看看其他大佬的文章试试吧。

二.准备wfastcgi模块

①打包项目至服务器

我们的宝塔在安装IIS的时候,为我们在C盘根目录下创建了一个wwwroot目录,我们可以把东西放在里面,或者如果自己搭建的IIS,就自己创一个文件吧。

然后把我们的项目复制到我们的网站目录下,我取名的时候项目就叫Django,所以在wwwroot目录下tree是这个亚子:

②安装 wfastcgi

pip install wfastcgi

安装完后,我们需要使用还需要在cmd里获取模块和python的目录(当然如果你知道这些路径也可以不用),但最好还是在cmd里输入这个命令试试吧,免得出现什么玄学状态:

wfastcgi-enable

出现如下字段,那我们就还是复制一下吧:

""c:\program files\python\python.exe"|"c:\program files\python\lib\site-packages\wfastcgi.py"" can now be used as a FastCGI script processor

主要是提取这个格式的信息:

"xxxx\python.exe"|"xxxx\wfastcgi.py"
"c:\program files\python\python.exe"|"c:\program files\python\lib\site-packages\wfastcgi.py"

然后我们再去wfastcgi.py的目录下把它拷贝至我的项目文件下(就是和manage.py在同一级目录下),再tree一下我们的wwwroot:

三.新建网站并设置

初步检查一下吧:

添加一下三个环境变量:

1.get_wsgi_application()方法的位置 #这个就是一模一样的了
    Name: WSGI_HANDLER
    Value: django.core.wsgi.get_wsgi_application()

2.Django项目目录 #这个要根据自己的项目目录来确定
    Name: PYTHONPATH
    Value: C:\wwwroot\Django

3.项目settings.py文件的位置 #这个也要根据自己的项目名来确定
    Name: DJANGO_SETTINGS_MODULE
    Value: Django.settings

然后我们来访问一下:

鸭儿哦,啥子回事?那就是没有设置权限。

四.设置文件权限

我们找到我们的项目文件,或者网站根目录:右键 -> 属性 -> 安全

再来访问一下呢?!!!!NICE!!! Debug模式界面!

这不就完事了吗?!

五.静态资源设置

对,Django中设置了静态资源,在服务器里我们还要再设置一次。(但是我没有用静态资源,所以我就大概写个流程)

我就搬运大佬的文章吧:地址:https://www.cnblogs.com/happyAzhan/p/11304696.html

如果项目包含静态文件,则需要配置静态文件

配置静态文件,在项目目录调用python manage.py collectstaic命令(如之前的运行runserver方法一致)将app下static中的静态文件全部拷贝到 settings.py 中设置的 STATIC_ROOT 文件夹中

命令运行结束后在项目的具体app路径下的static文件夹>>admin>>新建一个文件web.config

在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>

最后进入IIS管理器

你添加的网站>>右键菜单>>添加虚拟目录

名称:一般使用static

路径:选择web.config所在的目录

最后重新启动下网站就行了


但是我觉得吧那个<ckear/>不知道哪儿来的,我们的项目文件夹里也有一个web.config,其中包含了我们的设置:

其中代码如下:上面的代码不行的话,参考这个结构来试一试

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <handlers>
            <add name="djangomodule" path="*" verb="*" modules="FastCgiModule" scriptProcessor="c:\program files\python\python.exe|&quot;c:\program files\python\lib\site-packages\wfastcgi.py&quot;" resourceType="Unspecified" />
        </handlers>
    </system.webServer>
</configuration>

六.后记小结

终于弄通了,舒服了...

超开心,超快乐!

发布了63 篇原创文章 · 获赞 38 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/u011017694/article/details/104222737