Windows下flask+apache+mod_wsgi部署简介

本文档详细介绍了如何在Windows环境下,通过pip安装mod_wsgi,并解决安装过程中遇到的问题。随后,展示了如何获取mod_wsgi的配置信息,并将其添加到Apache配置文件中。接着,配置Apache监听多个端口,特别是为Flask应用设置独立的VirtualHost。最后,创建Flask应用的入口文件flaskApp.wsgi,并在Apache重启后,成功访问到Flask应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装mod_wsgi

pip install mod-wsgi

安装的时候如果提示打不开‘apr_perms_set.h’文件,就去github上面下载apr的源码,然后把里面的这个文件放入apache\include下面即可

安装好之后,获取module配置

C:\Users\Administrator>mod_wsgi-express module-config
LoadFile "D:/software/Python310/python310.dll"
LoadModule wsgi_module "D:/software/Python310/lib/site-packages/mod_wsgi/server/mod_wsgi.cp310-win_amd64.pyd"
WSGIPythonHome "D:/software/Python310"
C:\Users\Administrator>

然后将mod_wsgi配置到apache

....
#LoadModule watchdog_module modules/mod_watchdog.so
#LoadModule xml2enc_module modules/mod_xml2enc.so

LoadFile "D:/software/Python310/python310.dll"
LoadModule wsgi_module "D:/software/Python310/lib/site-packages/mod_wsgi/server/mod_wsgi.cp310-win_amd64.pyd"
WSGIPythonHome "D:/software/Python310"

<IfModule unixd_module>
...

Apache监听多端口

为了不对apache内的原配置有影响,我们使用VirtualHost进行独立配置,而不是去修改apache的配置,这样如果以后我们还想再增加配置一个django项目就很方便了。

找到apache\conf下的httpd.conf

...
Define SRVROOT "D:\software\BtSoft\BtSoft\apache"
#定义flask项目路径(这并不是必须的,只是方便后面的使用)
Define FLASKROOT "D:\software\JetBrains\project\flaskApp"
ServerRoot "${SRVROOT}"
...
Listen 80
#新增监听81端口,这就是我们的flask网站端口
Listen 81

开启Virtual hosts

找到apache\conf下的httpd.conf

...
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
...

配置Virtual hosts

找到apache\conf\extra\httpd-vhosts.conf

#跟上面监听的端口一致
<VirtualHost *:81>
    ServerAdmin webmaster@dummy-host2.example.com
    #指定网站根目录
    DocumentRoot "${FLASKROOT}"
    #指定网站用localhost:81来访问
    ServerName localhost:81
    #这条命令就是指定对 localhost:81/.. 的访问都转由${FLASKROOT}/flaskApp.wsgi来处理
    WSGIScriptAlias / "${FLASKROOT}/flaskApp.wsgi"
    ErrorLog "logs/dummy-host2.example.com-error.log"
    CustomLog "logs/dummy-host2.example.com-access.log" common
    #指定目录下的文件都可访问
    <Directory "${FLASKROOT}">
        AllowOverride None
        Require all granted
    </Directory>
</VirtualHost>

网站入口flaskApp.wsgi

import sys
#将项目路径加入到python搜索目录中,否下面的test_flask_sqlalchemy模块是找不到的
sys.path.insert(0, 'D:\\software\\JetBrains\\project\\flaskApp')
#application名字是不能变的,因为mod_wsgi只认这个名字
from test_flask_sqlalchemy import app as application

全部配置完成之后重启apache,打开浏览器访问 http://localhost:81/就能看到想要的效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值