首页 > 系统相关 >Django在Windows server IIS部署

Django在Windows server IIS部署

时间:2024-04-01 15:58:59浏览次数:19  
标签:py IIS Windows 路径 server python wfastcgi 安装

Django在Windows server IIS部署

本文章转载于https://www.django.cn/article/show-21.html,详查看此文

教程基于Windows server2012+Python3.6+IIS之上部署django的,同样适用于server2012之上的版本服务器和windows7以上的windows操作系统。

提示:Python不要安装在windows用户目录下,项目也不要放在windows用户目录下,这样就能避免出很多问题。

如果觉得看文字没意思,想看视频教程的,请点击这里:Django项目部署视频教程

1、安装IIS和CGI

打开服务器管理器,选择添加角色和功能,选择要添加的服务器角色(WEB服务器IIS),然后安装




IIS安装成功之后,然后安装CGI,再次选择添加角色和功能,找到之前安装的WEB服务器IIS,点击它。

在展开的选项里找到WEB服务器,点击它,找到应用程序开发点击在展开的列表里找到CGI,勾选,然后下一步,安装它。


安装好CGI之后,我们在浏览器里输入http://127.0.0.1 访问IIS,如果出现如下页面,说明IIS安装成功。

2、安装Python3

在C盘建立python目录,然后从Python官网下载Windows版本的64位的Python安装包,并安装它。具体可以参考文章:python3安装详细步骤

3、安装wfastcgi

在Windows下,我们没法使用uwsgi,但我们可以使用wfastcgi替代它,打开CMD窗口,输入命令安装wfastcgi:

pip install wfastcgi

安装成功之后,通过下面命令启动它:

wfastcgi-enable


如上图,启动成功之后,它会把Python路径和wfastcgi的路径显示出来,我们需要把这个路径复制出来,保存好,后边用得着。

c:\python\python.exe|c:\python\lib\site-packages\wfastcgi.py

注意:上面的路径,是由Python解释器的路径和“|”以及“wfastcgi.py”文件路径组成。

4、在IIS里添加项目网站


把我们本地项目源码上传到服务器相应的目录里。

留意:搬迁项目的时候我们先在本地换到项目路径下,用下面的命令把当前项目环境的软件包信息和依赖软件导出到requirements.txt文件里。

pip freeze > requirements.txt

然后把项目源码打包,上传到服务器的网站路径里,解压。

之后打开CMD切换到项目文件夹路径,输入下面命令,安装项目所需要依赖和软件包:

pip install -r requirements.txt


如果使用的是Mysql数据库,请自行安装Mysql和导入数据,这里就不详细介绍。

注意:项目所需要的库和依赖软件都安装完成之后,请先使用下面命令运行一下项目,确保源码能正常运行,之后再进行下一步。

python manage.py runserver

5、在项目根目录里新建一个web.config配置文件,放入以下内容:

<?xml version="1.0" encoding="UTF-8"?>     
<configuration>         
<system.webServer>             
<handlers>                 
  <add name="Python FastCGI"                       
    path="*"                       
    verb="*"                       
    modules="FastCgiModule"                       
    scriptProcessor="<Path to Python>\python.exe|<Path to Python>\lib\site-packages\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="<Path to Django App>" />             
<add key="DJANGO_SETTINGS_MODULE" value="<Django App>.settings" />         
</appSettings>     
</configuration>

留意:这里面我标记的三个地方,我们需要修改。

  • 1、替换为我们之前我们启动wfastcgi时复制的python和wfastcgi的路径。

  • 2、填写我们的项目路径。

  • 3、填写settings.py的位置。修改成我们的settings.py所在目录的目录名即可。

修改完毕,启动IIS,在浏览器里输入http://127.0.0.1 就能访问网站。

6、如果访问IIS出现如下错误:

HTTP 错误 500.19 Internal Server Error

出现这样的情况是因为IIS7之后的版本都采用了更安全的 web.config 管理机制,默认情况下会锁住配置项不允许更改。我们把它解锁了就OK。

打开CMD,在里面依次输入下面两个命令:

%windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/handlers 
 
%windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/modules
 
#提示:如果使用上面的命令提示%windir%载入出错,请把%windir% 修改为 C:\windows
 
C:\windows\system32\inetsrv\appcmd unlock config -section:system.webServer/handlers  C:\windows\system32\inetsrv\appcmd unlock config -section:system.webServer/modules


解除了锁定之后,再访问网站就能正常显示了。

还有种情况:有时候访问页面,或者单独访问网站后台出现400错误,这个时候可能是因为没有给网站权限的原因。我们打开IIS,找到网站,右键,编辑权限,给IIS用户添加修改和写入权限。就能正常访问。

7、给静态资源添加虚拟目录

网站能访问了,但我们的前端样式显示有问题。那是因为我们没有在IIS里指定我们的静态资源目录,我们给它添加上虚拟目录就能解决。

步骤:

1、添加虚拟目录,在IIS找选中网站项目名,右键--添加虚拟路径



添加虚拟目录时,别名放与你settings里设置的一致,比如'static',物理路径就是静态资源的实际目录。

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

8、管理后台样式丢失解决

正常情况下,部署的时候管理后台样式是不能正常显示的,我们需要收集这些样式到项目里去,才能正常显示。

步骤:

1、在settings.py里添加STATIC_ROOT配置指定收集路径如:

#指定样式收集目录,路径一般为项目里的static文件夹
STATIC_ROOT  = os.path.join(BASE_DIR, 'static')
#或
STATIC_ROOT = 'C:\python\mysite\static'

然后CMD下运行如下面命令,进行样式采集:

python manage.py collectstatic

采集完成之后,刷新页面。后台样式成功显示。至此,部署结束。

错误收集:

出现如下截图的错误大多是源码不能正常运行的原因,先在服务器项目目录里运行下面的命令,能运行再进行下一步,不能运行,请先检查源码。

python manage.py runserver


如果能正常运行项目,请检查一下Python安装路径,Python不要安装在某个用户的目录下,这样容易导致权限方面的问题。

标签:py,IIS,Windows,路径,server,python,wfastcgi,安装
From: https://www.cnblogs.com/HeroZhang/p/18108611

相关文章

  • iis跨域设置
     iis跨域设置在IIS中设置跨域,可以通过以下步骤进行:打开IIS管理器,选择你想要配置的网站。123双击"IIS"部分下的"HTTP响应头"。在右侧的操作面板中,点击"添加..."按钮。在"名称"字段中输入"Access-Control-Allow-Origin",在"值"字段中......
  • Django项目部署本地windows IIS(详细版)和static文件设置(页面样式正常显示)
    Django项目部署本地windowsIIS(详细版)和static文件设置(页面样式正常显示)原文链接:https://blog.csdn.net/hahahahanhanhan/article/details/134638020目录必要条件:一、下载并启用wfastcgi二、window安装IIS功能三、IIS管理器中添加网站1、复制项目2、复制wfastcgi.py文件......
  • [转]windows:批处理bat入门
    原文地址:windows:批处理bat入门_windowsbat-CSDN博客什么是BAT全称即Batch,批处理,是一类可执行的文本文件,扩展名为.bat。常用命令与语法help与/?都可以用来查看某个指令的帮助文档。语法格式:指令/?或者是help指令如title/?,就是打印title这个指令的帮助文档。需要注意,单独......
  • Django项目windows部署教程,详细踩坑总结
    Django项目windows部署教程,详细踩坑总结本篇文章主要关于Django在Windows上利用Apache部署,如果你想通过IIS部署,推荐这篇文章在IIS服务器上部署django_djangoiis-CSDN博客,我之前尝试部署在IIS上,发现Django的定时任务失效了,上网查找了一番,普遍说法是被服务器回收了,经过了一番操作,......
  • MSSQLServer dbo没有智能提示/红色报错波浪线
    使用SQLServer的时候碰到了一个问题,就是已经在[24_3_25]中创建了temp1表,但是左侧对象资源管理器窗口中没显示,而且没有输入提示,还有红色报错波浪线。如图所示解决方法:资源管理器没显示选中“表”选择刷新对于报错波浪线和没提示的问题看看是否是因为开启智能提示点击......
  • 用户、组或角色 'xxx 在当前数据库中已存在 Microsoft SQL Server,错误: 15023
    为一个数据库添加一个用户或者映射数据库时,提示以下错误信息:用户、组或角色*****在当前数据库中已存在。(MicrosoftSQLServer,错误:15023)问题原因:在还原数据库的过程中,在其它sqlserver服务器上进行还原之后,会出现一个在原服务器上可以正常的用户在目标服务器上出现无......
  • windows版本docker修改存储目录
    dockerdesktop里面,settings=>resource=>advance 或者手动操作1使用wsl--list-v在cmd终端,查看桌面是否关闭,如果没有关闭,使用wsl--shutdown立即终止所有正在运行的发行版和WSL2轻量级实用程序虚拟机2.查看存储地址默认情况下,DockerDesktopforWindow会创建如下......
  • Veritas NetBackup 10.4 (Unix, Linux, Windows) - 领先的企业备份解决方案
    VeritasNetBackup10.4(Unix,Linux,Windows)-领先的企业备份解决方案The#1enterprisebackupandrecoverysolution.请访问原文链接:https://sysin.org/blog/veritas-netbackup-10/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org备份和恢复软件解决方案领......
  • Nexpose v6.6.244 for Linux & Windows - 漏洞扫描
    Nexposev6.6.244forLinux&Windows-漏洞扫描Rapid7VulnerabilityManagement,ReleaseMar27,2024请访问原文链接:https://sysin.org/blog/nexpose-6/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org您的本地漏洞扫描程序搜集通过实时覆盖整个网络,随......
  • SQLserver 根据表名 转实体类
     declare@TableNamesysname='T1'declare@Resultvarchar(max)='///<summary>///'+@TableName+'///</summary>publicclass'+@TableName+'{'select@Result=@Result+'///<su......