基于IIS的Windows系统Django项目本地部署

参考:

基于Windows平台的Django本地部署和腾讯云服务器上部署(1)_如何在服务器上发布部署django程序 csdn-CSDN博客

2.Windows server iis部署Django详细操作 - Django中文 - 博客园 (cnblogs.com)

3.在IIS中部署python+Django项目时出现"Http 错误500.0"无法在<fastCGI>应用程序配置中找到<handler> scriptProcessor的一个解决办法,供参考_无法在<fastcgi>应用程序配置中找到<handler> scriptprocessor-CSDN博客

目录

零、注意事项

一、系统路径及文件

1.系统路径

2.系统正常运行

二、配置IIS服务器

1.安装iis

2.打开iis

三、wfastcgi安装打开

1.pip安装wfastcgi

2.启动wfastcgi

四、项目内文件配置

1.web.config

2.在iis中配置网站

3.打开网页

4.静态文件加载

5.成功打开

五、记录性备注


零、注意事项

此处仅为本人问题记录,不做通用性指导。我进行了两台电脑的部署,总的来说建议设置路径无空格的python环境,原因来源于经历,如下。

第一台环境在d盘,路径无空格,到 四、4即可完成,1.中途出现有包但是提示找不到的问题,按照报错2的方法解决(虽然报错2用这个方法未解决)2.映射问题&css样式,后文也有解决记录

第二台环境在c盘,是python默认环境,路径有空格,但是始终轮着提示报错1\2\3,很无奈,后面在d盘重新加了一个环境,就解决了,真好,能跑就行。

一、系统路径及文件

1.系统路径

D:\projects\project\map,后文或称【根目录】

manage.py,static文件夹均在如上的map目录下

2.系统正常运行

在pycharm中用terminal打开,应用 python manage.py runserver可以正常打开运行系统

二、配置IIS服务器

在window对应窗口进行iis对应配置

1.安装iis

控制面板---程序---程序和功能---打开或关闭windows功能------Internet 信息服务

点击【确定】,如下图显示即可,点击【关闭】

(以下本文未在此时测试:

根据参考博客2,安装完后可以在浏览器输入 127.0.0.1 测试效果,如下图

2.打开iis

【控制面板】-【管理工具】

进去之后找到 IIS,双击打开

三、wfastcgi安装打开

说明:wfastcgi是一个python库,使用pip安装

1.pip安装wfastcgi

使用【管理员】打开【命令提示符】(Windows PowerShell)

(douban镜像可能不行,设置清华源为默认后获得成功:

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple)

2.启动wfastcgi

安装完成后需要启动wfastcgi,输入wfastcgi-enable

记录下此时 wfastcgi.py 的路径 (D:\projects\venv\Scripts\python.exe|D:\projects\venv\lib\site-packages\wfastcgi.py),后文需要。

四、项目内文件配置

1.web.config

在根目录下创建web.config,内容如下

XML 复制代码
<?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <system.webServer>
            <handlers>
                <add name="Python FastCGI" path="*" verb="*" modules="FastCgiModule" scriptProcessor="D:\projects\venv\Scripts\python.exe|D:\projects\venv\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="D:\projects\project\map" />
            <add key="DJANGO_SETTINGS_MODULE" value="map.settings" />
        </appSettings>
    </configuration>

根据自己的项目调整如下三项

(1)scriptProcessor :设置为上面保存的路径

(2)<add key="PYTHONPATH" value="D:\projects\project\map" />

设置为根目录下一级,该级目录下有setting文件

(3) <add key="DJANGO_SETTINGS_MODULE" value="map.settings" />

项目名.settings

2.在iis中配置网站

在打开的IIS管理器中,添加网站

【网站名称】自行设置,看需求,目前没发现影响

【物理路径】设置同 四-1-(2)

【端口】本人想用8001,参考教程用的8000

(屏幕小的笔记本电脑,看不到确定键,可以填好回车)

3.打开网页

理论上应该可以打开,然后看到无css的html网页,但我的报错了

(1)报错1

参考链接3,操作如下:

①进入【处理程序映射】

路径前后需要有 双引号(另一半在后面截图未截到),确定后,web.config文件中,引号会对应变为&quot;之前这样网页就正常了

4.静态文件加载

(1)增加虚拟目录

添加虚拟目录时,别名放与settings里设置的一致,比如'static'(参考教程2说的,但我不知道setting指哪个),物理路径就是静态资源的实际目录。

(2)static文件夹下创建web.config

XML 复制代码
<?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>

5.成功打开

(1)localhost访问

在本机网页输入 http://localhost:8001/ 可以成功访问了,

(2)ip访问

也可以在局域网内通过ip链接

通过cmd输入ipconfig,找到自己电脑的 IPV4地址,以下是示例:

替换localhost,可以在本机&局域网内访问 http://192.168.0.108:8001,能ping通部署项目的机器,理论上可以访问。

如果访问不了,关掉部署了项目的机器的防火墙,再尝试。

关闭防火墙方式如下:

(根据局域网的不同可以选择性关闭,不知道怎么选,需要自己尝试,或者直接都关闭。

学校云桌面,尝试中只关域网络即可,为保险起见,可以都关闭,或者展示前测试一下)

五、记录性备注

以下问题解决方式不正确,仅作记录。建议为项目单独创建虚拟环境,而且个人感觉路径中最好不好有空格,我本来使用的是安装的默认环境,但是总是出现下面的问题,但是后面在D盘重新创建虚拟环境(同时路径无空格)后,就可以显示了,原因不明,只能说尽量避免吧

(1)报错1

就是上面的报错,但是这里记录不正确的解决思路,仅作常识性记录

检查路径是否未对应(本人在本机部署时,与其他机器路径混乱,找了很久的问题。)

原因解释:

路径包含空格,需要前后都包含双引号,在【编辑模块映射】中加上,即可在web.config中对应生成,解决500问题

(2)报错2

①检查系统在pycharm中能否正常运行python manage.py runserver,发现系统本身没问题

②不优秀的解决方式:

在终端uninstall该模块(此处为django,后可能有别的模块有问题)

在根目录下创建requirements.txt,将当前django及版本写入,如 Django==4.1.7

在终端定位到根目录,运行文件:pip install -r requirements.txt,重新下载module,然后运行,就解决了django问题(这种简单的流程之后,提示别的问题,等于当前问题解决了)

③总结:原因不明,卸载再安装就可以了,很离谱不太懂真的谢,而且如果批量卸载,批量用txt好像也不成功,就要一个一个,就是神金。

(3)报错3

解决

双击进入之后,发现在 python和wfastcgi的对应中,有未加引号的对应关系,删除即可,配图是删除后的。

(4)报错4

相关推荐
fish_study_csdn3 小时前
pytest 技术总结
开发语言·python·pytest
柏油4 小时前
MySQL InnoDB 行锁
数据库·后端·mysql
咖啡调调。4 小时前
使用Django框架表单
后端·python·django
BO_S__4 小时前
python调用ffmpeg对截取视频片段,可批量处理
python·ffmpeg·音视频
白泽talk4 小时前
2个小时1w字| React & Golang 全栈微服务实战
前端·后端·微服务
摆烂工程师4 小时前
全网最详细的5分钟快速申请一个国际 “edu教育邮箱” 的保姆级教程!
前端·后端·程序员
一只叫煤球的猫4 小时前
你真的会用 return 吗?—— 11个值得借鉴的 return 写法
java·后端·代码规范
就叫飞六吧4 小时前
如何判断你的PyTorch是GPU版还是CPU版?
人工智能·pytorch·python
Asthenia04124 小时前
HTTP调用超时与重试问题分析
后端
颇有几分姿色5 小时前
Spring Boot 读取配置文件的几种方式
java·spring boot·后端