记录一次在IIS环境+wfastcgi.py下安装django的过程,疯狂踩坑

  • admin 发布于 2020-07-29
  • 栏目: 程序开发
  • 来源:本站
  • 329 人围观
  • 2 个不明物体

因为不太会用Linux一类的系统,所以选择在windows下部署django环境

搞了很久,踩了无数的坑才成功,特此记录

先最开始提醒一点:如果你用的阿里云的ECS 要先去安全组里把80端口一类的给配置上,要不然直接访问不了的。

开始就因为这个疯狂折腾了半天


进入正题:

搭建环境介绍:

服务器:windows 2008 R2

python>3.8.0

Django>3.0.8

wfastcgi >3.0.0

virtualenv>20.0.28

virtualenvwrapper-win>1.2.6

1.安装IIS

一般来说是直接系统里 服务器管理>选择角色>添加iis 记得勾选CGI

这个步骤我选择的比较偷懒的方式,因为有时候要用到php环境,我直接用的护卫神的php套件安装的

正好一键连数据库和phpmyadmin也安装了

很简单,傻瓜模式一路点确定过程省略


2.安装全部所需要的软件及包

#1.python环境 (省略 下软件一路确定)

#2.安装完python环境后 开始安装对应的包

###安装虚拟环境###

pip install virtualenv

pip install virtualenvwrapper-win

###安装wfastcgi###

pip install wfastcgi

wfastcgi因为是公用,所有可以安装在原始目录

#3.配置虚拟环境 因为会有多个网站,为了保证相对独立 所以需要用到虚拟环境



mkvirtualenv 环境名   ==>创建虚拟环境

rmvirtualenv 环境名   ==>删除虚拟环境

lsvirtualenv   ==>列出虚拟环境

cdvirtualenv 环境名   ==>进入虚拟环境目录

workon 环境名   ==>进入虚拟环境

deactivate   ==>推出虚拟环境

根据上面命令  先创建一个虚拟环境后 再进入虚拟环境

通过 pip freeze >requirements.txt 导出开发环境上需要的包列表

再通过 pip install -r requirements.txt  在服务器上安装

由此,所有的包的安装工作完成


3.建立网站及配置

1.通过iis新建网站,并且将django网站的源文件复制到对应目录 然后要文件上做几处修改

文件项目目录下的settings.py文件

DEBUG = False #将原本的True设置为False 从开发模式转为生产模式

ALLOWED_HOSTS = ['*'] #设置为* 就可以域名访问了

STATIC_ROOT=os.path.join(BASE_DIR,'static') #给系统增加静态目录映射指定 后续静态文件上 还会用到

2.去到python 安装目录下的 \Lib\site-packages 目录下 将 wfastcgi.py 文件 复制到建立的网站的根目录

3.点击网站>点击右边的 处理程序映射>右侧菜单 添加映射模块

具体配置如下,配置完点确定  会在根目录生成web.config

请求路径:*
模块:选择FastCgiModule
可执行文件:对应的虚拟文件目录下的\Scripts\python.exe|网站安装目录下的\wfastcgi.py  #完整目录 |隔开
名称:随意取 但是要记住 后面有用 

4.点击IIS最上面的总选择>点击右边的 FastCGI 设置 选择刚才设置的映射点击

在 FastCGI 属性的常规选项下>点击环境变量后的集合 具体添加配置如下

WSGI_HANDLER:django.core.wsgi.get_wsgi_application()
PYTHONPATH:网站根目录
DJANGO_SETTINGS_MODULE:项目名.settings

5.点击应用程序池 选择对应网站 右键高级设置

把进程模型下 的  标识选择为  LocalSystem

6.把下面的代码保存为 web.config 并且将文件放置在 django 静态目录 以及 存储上传文件的目录下 代表这些目录下不用映射处理

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<remove name="<最开始设置映射时候填写的名称>" />
</handlers>
</system.webServer>
</configuration>

7.这个时候网站已经可以访问 但是比如访问自带后台的时候 没有静态文件样式等 

进入目录 执行 python manage.py collectstatic  收集静态文件到静态目录就可以了

 

标签: python django IIS

评论

  • 小闹尼 (2020年7月29日 23:43) 说:
    很棒,但是我看不懂