[Django] Window上通过IIS发布Django网站

news/2024/5/20 18:03:09/文章来源:https://blog.csdn.net/weixin_30413739/article/details/95920289

网上的教程坑实在多,以下是本人亲测通过的:

需要解决的问题:

1.使用 python manage.py runserver 来运行服务器,只适用测试环境中使用,正式发布的服务,需要一个可以稳定而持续的服务器。

2.部署在Windows服务器上

3. Django网站中的静态文件CSS、Font、Image、js 在本地服务器使用runserver指令可以完美加载,部署到IIS上后CSS失效、静态文件消失。

系统及软件版本:

Win 7

IIS 7.5

python 3.7

Django 2.1.7

wFastCGI

1.可运行的django网站

我创建的工程叫HelloWorld,目录如下

首先确保自己的django网站在服务器上可以通过命令行 runserver 正常运行。 

先在命令行切换到网站的根目录 D:\Automation_Develop_Work\HelloWorld

然后执行python manage.py runserver 0.0.0.0:8000

由于我的电脑上同时安装了python2和python3,而我搭建django环境用的是python3,所以需要用下面的这个命令:

py -3 manage.py runserver 0.0.0.0:8000

 

接下来就可以在浏览器中输入http://127.0.0.1:8000/admin/

(我事先按照这个教程:http://www.runoob.com/django/django-admin-manage-tool.html 创建了Admin管理工具):

 

 2.IIS安装和配置

安装IIS : https://www.microsoft.com/zh-CN/download/details.aspx?id=1038

在控制面板的程序和功能中,打开启用或关闭Windows功能窗口

勾选Internet Information Services下面所有的子目录,需要一个个的勾选

3.python安装wfastcgi模块

用 pip install wfastcgi 进行安装

由于我的电脑上同时安装了python2和python3,而我搭建django环境用的是python3,所以需要用下面的这个命令:

pip3 install wfastcgi

我的电脑上已经安装过了,没有保存之前的截图,下面的截图显示我已经安装过了。

4.项目文件处理

4.1 将项目文件拷贝到 C:\inetpub\wwwroot 目录下,方便管理,同时可以避免引起Windows Server的某些安全问题。 

4.2 在python的Lib\site-packages目录下,找到wfastcgi.py文件,并将其复制到你的django项目根目录下

我的机器是将 C:\Python37\Lib\site-packages\wfastcgi.py 拷贝到 C:\inetpub\wwwroot\HelloWorld\wfastcgi.py

5.配置网站

5.1 进入IIS管理器,添加网站

我的电脑-->右键-->管理-->Servies and Application-->Internet Information Services(IIS) Manager

 5.2 填写相关参数

5.3 进入你建立的站点,选择处理程序映射

请注意,必须进入你指定的网站里面,再添加模块映射,否则,映射会添加到你所有的网站里。

 

5.4 添加模块映射

 

模块选择FastCgiModule,如果第3步没有安装wfastcgi模块,请先安装哦。

可执行文件对于本项目来说,实际上是必填的。

此例中,C:\Python37\python.exe|C:\inetpub\wwwroot\HelloWorld\wfastcgi.py。前面是python的路径,后面是wfastcgi.py文件的路径。实际上,如果wfastcgi.py文件路径直接引用python\Lib\site-packages目录下的文件也可以,不过就不可以部署多个Django网站了。 

Name是可以自己随便填的,但是这个在后面的web.config中要用到,所以记住你这里填的是什么。

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

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

 5.7 返回主页,进入FastCGI设置

 

 5.8 新建FastCGI应用程序,修改环境变量

 点击右侧的Add Application:

按照下图设置并点开Environment Variables右侧的那个小图标

 添加2个环境变量

     1.  get_wsgi_application()方法的位置

  1. Name: WSGI_HANDLER
  1. Value: django.core.wsgi.get_wsgi_application()

 

      2.   项目settings.py文件的位置

             Name: DJANGO_SETTINGS_MODULE

             Value: HelloWorld.settings(HelloWorld是自己的项目名称)

6 在网站根目录创建一个名为web.config的文件

此时文件目录如下:

web.config的文件内容如下:(<appSettings></appSettings> ,我验证了一下,这一截是可以不要的,因为在IIS里面已经设置过了,而且web.config文件是自动生成的)

<?xml version="1.0" encoding="UTF-8"?>
<configuration><appSettings><add key="WSGI_HANDLER" value="django.core.wsgi.get_wsgi_application()" /><add key="PYTHONPATH" value="%ROOTDIR%" /><add key="DJANGO_SETTINGS_MODULE" value="HelloWorld.settings" /></appSettings><system.webServer><handlers><add name="MyFastCgiModule" path="*" verb="*" modules="FastCgiModule" scriptProcessor="C:\Python37\python.exe|C:\inetpub\wwwroot\HelloWorld\wfastcgi.py" resourceType="Unspecified" /></handlers></system.webServer>
</configuration>

红色标识的是需要照着配的,可能根据你自己的情况需要改一下。

DJANGO_SETTINGS_MODULE 的 value 里面 HelloWorld 是项目的名字

MyFastCgiModule 是在 IIS 配置时添加模块映射的名字

C:\Python37\python.exe|C:\inetpub\wwwroot\HelloWorld\wfastcgi.py 前面一截是python的路径,后面一截是项目中wfastcgi.py的路径,中间用竖线隔开

至此,一个不包含静态文件的Django站点部署完成

在别人的电脑上就可以通过你的IP地址访问这个网站了,但是这时候静态文件是丢失的状态,看不到样式这些,还继续处理静态文件的发布

6+.修改setting.py文件中的ALLOWED_HOSTS

通过浏览器访问服务器网址,出现访问错误,报错为
Invalid HTTP_HOST header: ‘xxx.xx.xxx.xxx:8080’. You may need to add ‘xxx.xx’ to ALLOWED_HOSTS

解决办法:
修改创建项目时生成的setting.py文件

将ALLOWED_HOSTS = []改为ALLOWED_HOSTS = ['*']

再次运行即可成功访问。

7. 配置静态文件

7.1 在C:\inetpub\wwwroot\HelloWorld\HelloWorld\settings.py中配置STATIC_ROOT如下: 

STATIC_ROOT = os.path.join(BASE_DIR, 'static')

注意:这里必须是 static ,必须和 C:\inetpub\wwwroot\HelloWorld\HelloWorld\settings.py 中 STATIC_URL = '/static/' 一致

7.2 收集静态文件

命令行跳转到项目目录: cd /d C:\inetpub\wwwroot\HelloWorld

执行命令 : python manage.py collectstatic

由于我的电脑上同时安装了python2和python3,而我搭建django环境用的是python3,所以需要用下面的这个命令:

py -3 manage.py collectstatic

此时会生成一个文件夹叫static

我是事先建了一个Admin管理工具,static下面会有一个admin的子文件

 admin文件夹下面有css,fonts,img,js

7.3 配置静态文件

在项目的static文件夹中新建一个名为web.config的文件

web.config的内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<configuration><system.webServer><handlers><remove name="MyFastCgiModule" /></handlers></system.webServer>
</configuration>

MyFastCgiModule 是在 IIS 配置时添加模块映射的名字

7.4 打开IIS管理器,选定该网站项目,右击选择添加虚拟路径

(刚验证了一下,好像这一步不需要)

7.5 填写虚拟路径的别名和路径

别名我填的是staticForHelloWorld

路径则是该网站static文件夹的路径,也就是刚才创建web.config的文件夹:C:\inetpub\wwwroot\HelloWorld\static

 重新运行一下IIS,应该就没有问题了

 

转载于:https://www.cnblogs.com/MasterMonkInTemple/p/10598606.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_804778.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《深入网站开发和运维》

《深入网站开发和运维》 基本信息 原书名&#xff1a;Pro website development and operations:Streamlining devOps for large-scale websites 原出版社&#xff1a; Apress 作者&#xff1a; (美)Matthew Sacks 译者&#xff1a; 曾少宁 丛书名&#xff1a; 图灵程序设计丛…

常见的网站服务器架构

初始阶段的网站架构 一般来讲&#xff0c;大型网站都是从小型网站发展而来&#xff0c;一开始的架构都比较简单&#xff0c;随着业务复杂和用户量的激增&#xff0c;才开始做很多架构上的改进。当它还是小型网站的时候&#xff0c;没有太多访客&#xff0c;一般来讲只需要一台服…

Kaggle网站流量预测任务第一名解决方案:从模型到代码详解时序预测

Kaggle网站流量预测任务第一名解决方案&#xff1a;从模型到代码详解时序预测 2017年12月13日 17:39:11 机器之心V 阅读数&#xff1a;5931近日&#xff0c;Artur Suilin 等人发布了 Kaggle 网站流量时序预测竞赛第一名的详细解决方案。他们不仅公开了所有的实现代码&#xff0…

mysql表名备注_「备注」mysql添加备注信息 - seo实验室

备注前言这连天有人问我一些mysql的备注信息&#xff0c;不得已还是写一遍博客吧1、创建表的时候&#xff0c;添加表名备注和字段备注CREATE TABLE healerjean_comment (id bigint(20) NOT NULL AUTO_INCREMENT,name varchar(32) NOT NULL COMMENT 名字备注,email varchar(64) …

laravel linux 入口文件,php - laravel部署到linux,将public文件夹指定为网站根目录,但是无法访问其子文件夹...

本机使用的是window环境,一切正常,但是部署到linux系统上(配的是nginx),在访问的时候,控制器和方法都能正常执行,页面也可以输出,但是输出的页面却缺少css文件,一查是500错误,已经将请求重定向到public文件夹下,我的目录结构是:public/web/css/css.css域名是:aaa.com直接访问aa…

html对话框鼠标事件只触发一次,JS中mouseover和mouseout多次触发问题如何解决

问题描述我希望当鼠标移动到id1上的时候&#xff0c;id2显示&#xff0c;当鼠标离开id1的时候&#xff0c;id2显示。问题如下&#xff1a;1.当鼠标从id1上移动到id2上的时候&#xff0c;id由有显示变为不显示&#xff0c;然后变为显示2.当鼠标从id2上移动到id1上的时候&#xf…

dede mysql密码重置_织梦dede系统网站后台账号密码修改(3种方法搞定)

如今身处于互联网时代的我们生活丰富多彩&#xff0c;而我们的账号密码也同样如此&#xff0c;以前有很多用户将自己的密码设置成一种或两种的&#xff0c;但是造成了不法分子大量盗窃并撞库&#xff0c;造成很多平台的账号密码都泄露了&#xff0c;所以为了避免信息被盗窃&…

推荐一个好的餐馆点评网站

今天看财经频道经济观察发现的。大概是大众点评网整理除了一本对上海餐馆的评价。对一家饭店评价的一般或者比较差。然后餐馆上诉这家网站看了一下这个网站的评价确实还比较客观。广告一把&#xff1a;http://www.zsurvey.com 大众点评网转载于:https://www.cnblogs.com/montaq…

卡巴斯基误杀XP导致某IT网站电脑大面积瘫痪

12月20日早上8点30分左右&#xff0c;Into编辑部的几台电脑&#xff0c;同时出现杀毒软件报警感染病毒的情况 出现报警的杀毒软件均为卡巴斯基&#xff0c;病毒库版本2007 12-20 4:30 03。有人按照杀毒软件的提示&#xff0c;点击了删除&#xff0c;但是在重启电脑之后&#xf…

java web默认页面_Spring Boot 2.0 设置网站默认首页的实现代码

Spring Boot设置默认首页&#xff0c;方法实验OK如下附上Application启动代码/*** ClassName Application* Description Spring-Boot website启动类* author kevin.tian* Date 2018-03* version 1.0.0*/SpringBootApplicationPropertySource(value{"file:${APP_HOME_CONF}…

使用输出缓存增强网站性能(简单介绍)

性能是任何 Web 应用程序的关键方面。 必须减少 Web 服务器的处理量&#xff0c;以便使单个请求结果响应速度更快、服务器有能力处理更多并发请求并减少中间和后端数据系统的负荷。 使用输出缓存以减少服务器的工作负荷&#xff0c;能够实现更佳的 ASP.NET 性能。 输出缓存是一…

博客网站的Windows Live Writer设置

暂时没有发现更好的离线编辑blog的软件&#xff0c;#Windows Live Write#应该是不错的一个&#xff0c;但用它配置访问编辑live spaces是很不错的。但大家可能也都知道了&#xff0c;微软准备把live spaces整体迁移到 #WordPress# 架构上&#xff0c;可是众所周知&#xff0c;W…

一个数据比较牛叉的网站

2019独角兽企业重金招聘Python工程师标准>>> http://www.swpc.noaa.gov/ftpdir/weekly/Predict.txt 转载于:https://my.oschina.net/zhangdapeng89/blog/54399

网站DDOS***防护实战老男孩经验心得分享

网站DDOS***防护实战老男孩经验心得分享 老男孩由于要培训学生、批改作业&#xff0c;因此最近比较忙&#xff0c;还要经常写书、录视频&#xff0c;搞的思路混乱&#xff0c;受朋友邀请参加某论坛活动&#xff0c;推迟不过&#xff0c;挤了一点时间&#xff0c;给大家简单分…

优秀开发工具:推荐8个在线调试代码的网站

对于 Web 开发人员来说&#xff0c;有个快速测试代码的地方是非常方便的。在这篇文章&#xff0c;我们收集了8个非常有用的网站&#xff0c;帮助 Web 开发人员在线调试代码&#xff0c;其中有些站点还可以在线分享和备用代码&#xff0c;这能够帮助你非常方便的和其它的开发人员…

今日头条的排名算法_今日头条搜索seo排名怎么做? 今日头条搜索排名规则...

今日既然今日头条宣布做搜索引擎&#xff0c;怎么少的了“头条seo”的研究呢&#xff1f;一、“头条seo”是什么&#xff1f;头条seo指的是在今日头条app上用关键词搜索结果排名靠前。头条号称打造“全网信息搜索引擎”&#xff0c;那么这个“站外”内容指的是&#xff0c;非头…

Fedora16+XAMPP+Drupal7建站,从零开始全程指导

Fedora16XAMPPDrupal7建站&#xff0c;从零开始全程指导题记&#xff1a;只要给我一台电脑&#xff0c;就能给你一个网站本文网址&#xff1a;http://aaron8967.blog.51cto.com/blog/6177488/1046475 前言&#xff1a;本文旨在通过Linux下的XAMPP插件&#xff0c;在Fedora16操作…

55+手绘网站设计 – 构建极具创新效果的网站

手绘网页设计无疑是创建个性化页面并获取众多关注的好办法。 尽管手绘在网页设计中不是最热门的&#xff0c;但却是很常见的方法。如你在以下的实例中所见&#xff0c;将手绘融入网页设计有很多种方法&#xff0c;都看上去很棒&#xff01;正如其他任何艺术形式一样&#xff0c…

ASP.NET的SEO:使用.ashx文件——排除重复内容

本系列目录 不同的链接指向的页面如果具有大量相同的内容&#xff0c;这种现象就会被称为“重复内容”&#xff0c;如果一个网站的重复内容很多&#xff0c;搜索引擎就会认为这个网站的价值不高。所以我们应尽量避免各种重复内容。动态网站的重复内容常常是由URL参数引起的&am…

如何ping测有端口的网站

参考&#xff1a;http://jingyan.baidu.com/article/c1a3101e878dcede656deb05.html 参考2&#xff1a;http://www.haoid.cn/post/261 现在不少机房做了禁ping&#xff0c;但我们需要了解本地与机房连接速度怎么样就不好搞了&#xff0c;现在告诉你个小窍门&#xff0c;机房禁p…