素材巴巴 > 程序开发 >

在IIS上部署Django项目

程序开发 2023-09-10 13:53:32
  1. 安装python
  2. venv 为网站程序创建虚拟环境
  3. pip install -inquirement.txt
  4. 创建网站目录,上传网页文件 
  5. 初始化数据库
  6. 在虚拟环境中进入网站目录,manage.py runserver看看能否运行正常
  7. 安装wfastcgi (wfastcgi可以安装到全局环境,也可以激活并进入虚拟环境把wfastcgi安装到项目的虚拟环境。因为IIS的每个站点都需要独立配置wfastcgi的。
    最简单的方式是:仅把本地的wfastcgi.py这一个文件复制到服务器上就可以了)
  8. 安装IIS(勾选CGI)
  9. 创建网站
  10. 设置FastCGI
  11. 设置静态文件
  12. 设置settings.py

settings.py 的 DEBUG 要改回False

IIS 500 – 内部服务器错误解决方案

 

解决方法:打开IIS,在功能视图中找到“错误页”,双击进去后,看最右边的“操作”下的“编辑功能设置…”,将“错误响应”下的“详细错误”勾上。

Q1、需要在服务器上创建python的虚拟环境吗?

A:不是必须,但一般建议每个网站一个独立的虚拟环境。不使用虚拟环境,直接用python安装目录的主环境也可以。多个网站共用一个虚拟环境也可以。

Q2、在网站物理路径(例如:c:interpubwwwsite001)上创建虚拟环境吗?

A:可以,但不建议这样做,有安全隐患。你可以在D盘上创建python虚拟环境,在E盘上创建网站目录也没有问题。在IIS设置【cgi模块映射】时,指定可执行文件路径为python虚拟环境的python.exe即可。

Q3、网站的文件放在虚拟环境目录还是放在网站目录?

A:放在网站目录下。

 wfastcgi 相关设置 参看这里,很详细:https://blog.csdn.net/bigcarp/article/details/121028820

静态目录设置:

django的静态文件放在专门的目录

python manage.py collectstatic 命令把静态文件都收集到一起

python manage.py runserver 用的是 collectstatic收集的文件,单IIS、ngix等则不采用这个规则,需要通过web.config之类进行配置。

https://blog.csdn.net/weixin_36296538/article/details/83153070

1、设置可以直接访问资源。

2、设置无需python解释。

网站根目录配置了cgi映射wfastcgi 后, IIS把所有请求都交给wfastcgi,对于静态文件,不需要交给wfastcgi,所以静态文件放在指定的文件夹,并在文件夹下创建web.config 配置成可以访问。

静态文件目录下的web.config内容如下:


 

(注意:如果某些目录是不需要python解析,可以在目录下再配置一个 web.config,参考写下如下代码即可:

执行过程:

IIS收到用户请求后,调用【模块映射】所指定的python.exe 启动对应的 wfastcgi.py,

wfastcgi 将会根据路由配置 执行相对应的 function ,并把执行结果返回给iis,由II返回给用户

setting.py 配置

ALLOWED_HOSTS

Debug 等设置项

如果设置完毕还未正常打开网页,设置网站的错误页显示详细错误看看,搞好了再设回自定义。


标签:

素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。