悠闲博客-blog.yxrjt.cn

python使用Apache+mod_wsgi部署Flask(已测)

更新时间:2025-11-21 19:27点击:74

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

安装时勾选"Add python.exe to PATH"就不需要手动配置环境变量了:
在这里插入图片描述
直接下一步即可:
在这里插入图片描述
选择自己的安装目录:
在这里插入图片描述

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

python -V

如下则表示配置成功:
在这里插入图片描述

二、安装mod_wsgi

下载地址
链接:https://pan.baidu.com/s/18XqdU2HZc3oxAyZAlkMaQQ
提取码:9ruf
注意要和Python版本一样,Python 3.10选择cp310,这里我选择的是 mod_wsgi-4.9.2-cp310-cp310-win_amd64.whl
在这里插入图片描述
在下载文件目录打开cmd输入如下命令进行安装:
pip install mod_wsgi-4.9.2-cp310-cp310-win_amd64.whl

安装成功如下所示:
在这里插入图片描述

项目目录下创建main.wsgi

import sys
 
#path 替换成自己的项目目录
sys.path.insert(0,"D:/FPWEB/FlaskProject")
 
#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输入如下命令,将输出结果添加到配置文件中:

mod_wsgi-express module-config
输入结果第二行信息就是我们需要的信息:
在这里插入图片描述
将如上信息添加到httpd.conf文件中
在这里插入图片描述
在文件末尾添加如下信息(注意修改相关配置):
<VirtualHost *:8998>
    ServerName localhost
    DocumentRoot "D:/FPWEB/FlaskProject"
    WSGIScriptAlias / D:/FPWEB/FlaskProject/main.wsgi
    <Directory D:/FPWEB/FlaskProject>
        Require all granted
    </Directory>
</VirtualHost>

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

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

httpd -t
在这里插入图片描述

四、安装项目依赖

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

pip install Flask -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/

在这里插入图片描述

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

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即可:
在这里插入图片描述
访问:127.0.0.1:8998

在这里插入图片描述

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

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

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

from flask import Flask

app = Flask(__name__)

@app.route('/')
def mytest():
    return 'Hello World.这是一个部署测试。'

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

mytest.wsgi


import sys

#app's path
sys.path.insert(0,"D:/FPWEB/FlaskProject")

from mytest import app

#Initialize WSGI app object
application = app

配置httpd.conf文件


②添加VirtualHost配置

<VirtualHost *:8998>
    ServerName localhost
    DocumentRoot "D:/FPWEB/FlaskProject"
    WSGIScriptAlias / D:/FPWEB/FlaskProject/main.wsgi
    <Directory D:/FPWEB/FlaskProject>
        Require all granted
    </Directory>
</VirtualHost>

<VirtualHost *:8999>
    # 网站名称
    ServerName localhost
    DocumentRoot "D:/FPWEB/FlaskProject"
    # 设置工程中的wsgi路径
    WSGIScriptAlias / D:/FPWEB/FlaskProject/mytest.wsgi
    # 设置wsgi路径
    <Directory D:/FPWEB/FlaskProject>
    <Files mytest.wsgi>
        Require all granted
    </Files>
    </Directory>
    # 设置静态文件路径
    Alias /static D:/FPWEB/FlaskProject/static
    <Directory D:/FPWEB/FlaskProject/static>  
        AllowOverride None  
        Options None  
        Require all granted  
    </Directory>
</VirtualHost>

在这里插入图片描述

wwww

栏目分类

联系方式
  • help@yxrjt.cn
  • lgc@yxrjt.cn
  • admin@yxrjt.cn