在IIS上部署Django项目

 参考:Windows server iis部署Django详细操作!

  1. 安装python
  2. venv 为网站程序创建虚拟环境  (c:\www >python -m venv venv)
  3. activate虚拟环境(c:\www >venv\scripts\activate),在虚拟环境下 pip install -r requirements.txt  (来自pip freeze > requirements.txt)
  4. 创建网站文件夹,上传网页文件 
  5. 初始化数据库 (python manage.py migrate 及数据迁移)
  6. 在虚拟环境中进入网站目录,manage.py runserver看看能否运行正常
  7. 安装wfastcgi  (pip install wfastcgi)  (wfastcgi可以pip install到全局环境,也可以激活并进入虚拟环境把wfastcgi安装pip install到项目的虚拟环境。因为IIS的每个站点都需要独立配置wfastcgi的,配置时可以指向全局的wfastcgi 也可以指向虚拟环境的wfastcgi。)
  8. 安装IIS(务必勾选CGI:select server roles > Roles > Web Server(IIS) > Web Server > Application Development > CGI)
  9. IIS上创建网站
  10. 设置FastCGI (从运行中的项目中拷贝一个web.config出来,在其基础上改即可,就省去iis界面配置了)
  11. 设置静态文件
  12. 设置settings.py (DEBUG=False、DATABASES)    关闭urls.py中的静态文件转发

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

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

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

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

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

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

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

A:放在网站目录下。

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

1、在虚拟环境中pip install wfastcgi

2、wfastcgi-enable

3、设置web.config中的<handlers> </handlers>

4、在IIS界面中,设置网站应用程序池的标识设置为“LocalSystem”

5、

%windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/handlers
%windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/modules

若python是安装在C:\Users\username\AppData 中,( C:\Users\Administrator\AppData\Local\Programs\Python\Python38\python.exe)建议不要使用全局环境的wfastcgi,我自己测试发现web.config的<handlers>  </handlers>中,填写全局的wfastcgi 会报wfastcgi出错,但改为虚拟环境的就可以。

web.config:

以下设置报错:
scriptProcessor="C:\Users\Administrator\AppData\Local\Programs\Python\Python38\python.exe|C:\Users\Administrator\AppData\Local\Programs\Python\Python38\lib\site-packages\wfastcgi.py"

-------------------
改为以下设置就好了:
scriptProcessor="c:\www\venv\scripts\python.exe|c:\www\venv\lib\site-packages\wfastcgi.py"


原因不知道

静态目录设置:

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内容如下:

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

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

执行过程:

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

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

setting.py 配置

ALLOWED_HOSTS

Debug 等设置项

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

dddddddddddddddddddd'd'd'd'd'd'd'd'd'd'd'd'd'd'd'd'd'd'd

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在IIS部署Django项目,您需要执行以下步骤: 1. 安装IIS:如果您还没有安装IIS,请先安装它。可以使用“控制面板”中的“程序和功能”来安装IIS。 2. 安装Python:确保您的服务器上安装了Python。 3. 安装wfastcgi:使用以下命令安装wfastcgi: ``` pip install wfastcgi ``` 4. 创建Django项目:创建并配置Django项目。确保您的项目能够在本地运行。 5. 创建Web应用程序:在IIS中创建Web应用程序。使用“管理工具”打开IIS管理器,右键单击“网站”并选择“添加网站”。为网站提供名称、物理路径和端口号。 6. 安装FastCGI:在IIS中安装FastCGI。使用“服务器管理器”打开IIS管理器,选择“服务器管理器”窗口中的“角色”,然后选择“添加角色服务”。选择“Web服务器(IIS)”和“应用程序服务器”。 7. 配置FastCGI:在IIS中配置FastCGI。打开IIS管理器,右键单击Web应用程序并选择“添加应用程序”。为应用程序提供别名和物理路径。在“处理程序映射”中添加一个新的FastCGI映射。选择“FastCGI”处理程序类型,并提供可执行文件的路径(例如,C:\ Python27 \ python.exe)。在“Request Restrictions”中,确保“Invoke handler only if request is mapped to:File”选项被选中。 8. 配置wfastcgi:在IIS中配置wfastcgi。打开IIS管理器,右键单击Web应用程序并选择“配置”,然后选择“添加模块映射”。在“请求路径”中输入“*”,在“模块”中输入“FastCgiModule”,在“可执行文件”中输入“C:\ Python27 \ Scripts \ wfastcgi.py”。在“请求限制”中,选择“所有Verbs”,并确保“Invoke handler only if request is mapped to:File”选项被选中。 9. 测试:测试您的Django应用程序是否能够在IIS中运行。 这些步骤可能因不同的操作系统版本和IIS版本而有所不同。如果您遇到任何问题,请查看文档或咨询网络管理员。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值