python使用Apache+mod_wsgi部署Flask

python使用Apache+mod_wsgi部署Flask

一、安装python环境(V3.10.10)

安装时勾选"Add python.exe to PATH"就不需要手动配置环境变量了:

直接下一步即可:

选择自己的安装目录:

安装完成后验证是否安装配置成功,打开cmd,输入如下命令:

yaml 复制代码
python -V

如下则表示配置成功:

二、安装mod_wsgi

下载地址

注意要和Python版本一样,Python 3.10选择cp310,这里我选择的是 mod_wsgi-4.9.2-cp310-cp310-win_amd64.whl

在下载文件目录打开cmd输入如下命令进行安装:

yaml 复制代码
pip install mod_wsgi-4.9.2-cp310-cp310-win_amd64.whl

安装成功如下所示:

项目目录下创建main.wsgi

yaml 复制代码
import sys
 
#path 替换成自己的项目目录
sys.path.insert(0,"D:/File/first_flask")
 
#first_flask是主程序,根据自己的填写
from first_flask import app
 
application = app

三、安装Apache

官网点击这里

1、下载

点击"Download"

点击"Files for Microsoft Windows"

点击"Apache Lounge"

选择与自己系统匹配的安装包进行下载

2、解压

3、配置

配置文件位于解压目录下:Apache24/conf/httpd.cnf

配置SRVROOT,修改为自己的目录即可,注意路径格式,最后一层路径没有"/"

配置监听端口,根据自己需要进行配置:

打开如下的配置信息(删除最前面的#):

打开cmd输入如下命令,将输出结果添加到配置文件中:

yaml 复制代码
mod_wsgi-express module-config

输入结果第二行信息就是我们需要的信息:

将如上信息添加到httpd.conf文件中

在文件末尾添加如下信息(注意修改相关配置):

yaml 复制代码
<VirtualHost * >
	ServerName flask.com    #可以不配置,有域名可以自行配置
	WSGIScriptAlias / "D:\File\first_flask\main.wsgi"
	<Directory "D:\File\first_flask">
		Require all granted
	</Directory>	
</VirtualHost>

说明:WSGIScriptAlias为我们创建的main.wsgi的路径,Directory为我们的项目路径

测试配置文件是否合法:在apache解压的bin目录下打开cmd,输入如下命令

yaml 复制代码
httpd -t

四、安装项目依赖

该demo我就只需要安装flask依赖即可

yaml 复制代码
pip install Flask -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/

项目源代码如下(first_flask.py):

yaml 复制代码
from flask import Flask

app = Flask(__name__)

@app.route("/")
def index():
    return "<h1 style='color:red'>Hello World</h1>"

if __name__ == '__main__':
    app.run()

五、启动

在apache目录下双击httpd.exe即可:

访问:192.168.239.129:8998

查询apache运行日志可以在解压的log目录下查看。

六、基于多端口部署多个flask项目

项目代码我们复制之前的,main.wsgi也复制之前的,调整一下配置路径即可,得到文件"first_flask2.py"和"main2.wsgi",文件内容如下:

first_flask2.py

yaml 复制代码
from flask import Flask

app = Flask(__name__)

@app.route("/")
def index():
    return "<h1 style='color:red'>Hello World2</h1>"

if __name__ == '__main__':
    app.run()

main2.wsgi

yaml 复制代码
import sys
 
#path 替换成自己的目录
sys.path.insert(0,"D:/File/first_flask")
 
#main是first-flask,根据自己的填写
from first_flask2 import app
 
application = app

配置httpd.conf文件

①添加监听端口

②添加VirtualHost配置

yaml 复制代码
<VirtualHost 192.168.239.129:8998 >
	ServerName flask.com
	WSGIScriptAlias / "D:\File\first_flask\main.wsgi"
	<Directory "D:\File\first_flask">
		Require all granted
	</Directory>	
</VirtualHost>

<VirtualHost 192.168.239.129:8999 >
	ServerName flask2.com
	WSGIScriptAlias / "D:\File\first_flask\main2.wsgi"
	<Directory "D:\File\first_flask">
		Require all granted
	</Directory>	
</VirtualHost>

重启apache即可:

相关推荐
2601_9622932412 分钟前
Python自动化统计团队工作量并生成可视化仪表盘的脚本方案【指导】
python·数据分析·自动化·可视化·仪表盘
2601_962293791 小时前
OCRmyPDF批处理脚本:使用Python自动化复杂OCR任务
python·自动化·批处理脚本·ocrmypdf·ocr任务
Java后端的Ai之路3 小时前
20、Python - 备忘录模式
开发语言·人工智能·python·外观模式·备忘录模式
2601_962077713 小时前
基于Python与NLP的新闻事件信息抽取实战:从NER到时空标准化
python·nlp·transformers·spacy·新闻事件抽取
JavaPub-rodert4 小时前
LangChain 从入门到 Agent 实战:用 Python 搭建一个真正能调用工具和知识库的 AI 助手
人工智能·python·langchain
郝学胜-神的一滴4 小时前
Qt 高级编程 045:坐标体系深度实战
开发语言·c++·windows·python·qt·程序人生
m0_380743875 小时前
给 OpenAI API 调用加上模型切换:GPT-5.1 和 Codex 的配置实践
人工智能·python·gpt
2601_962297485 小时前
在python3中、下列输出变量a的正确写法是_2020超星大数据Python免费答案
数据结构·python·算法·编程·字符串操作
“AI国潮设计-小江”5 小时前
Python实战 | SDXL精准控制“普宁英歌舞×星空蛋糕”IP落地,附核心Prompt与商用授权思路
开发语言·人工智能·python·prompt·aigc
公爵爱学习5 小时前
无人机视觉识别前序-Linux-YOLO安装
python·yolo·计算机视觉·conda·无人机