python使用Apache+mod_wsgi部署Flask
- 一、安装python环境(V3.10.10)
- 二、安装mod_wsgi
- 三、安装Apache
- 1、下载
- 2、解压
- 3、配置
- 四、安装项目依赖
- 五、启动
- 六、基于多端口部署多个flask项目
一、安装python环境(V3.10.10)
安装时勾选"Add python.exe to PATH"就不需要手动配置环境变量了:
直接下一步即可:
选择自己的安装目录:
安装完成后验证是否安装配置成功,打开cmd,输入如下命令:
python -V
如下则表示配置成功:
二、安装mod_wsgi
下载地址
注意要和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:/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输入如下命令,将输出结果添加到配置文件中:
mod_wsgi-express module-config
输入结果第二行信息就是我们需要的信息:
将如上信息添加到httpd.conf文件中
在文件末尾添加如下信息(注意修改相关配置):
<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,输入如下命令
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即可:
访问:192.168.239.129:8998
查询apache运行日志可以在解压的log目录下查看。
六、基于多端口部署多个flask项目
项目代码我们复制之前的,main.wsgi也复制之前的,调整一下配置路径即可,得到文件"first_flask2.py"和"main2.wsgi",文件内容如下:
first_flask2.py
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
import sys
#path 替换成自己的目录
sys.path.insert(0,"D:/File/first_flask")
#main是first-flask,根据自己的填写
from first_flask2 import app
application = app
配置httpd.conf文件
①添加监听端口
②添加VirtualHost配置
<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即可: