需求:在本地物理机上部署flask项目做后端,提供api,前端用react,查了两天,最后成功,做个记录,以备后来查阅。
一、首先需要安装apache和mod_wsgi,需要注意的是python版本,apache版本,mod_wsgi版本要匹配,不然会出问题,我的python版本为python3.7,64位的,所以我下载的apache和mod_wsgi分别为
Apache下载网址:https://www.apachelounge.com/download/VC10/
mod-wsgi下载网址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi
二、安装apache和mod_wsgi,apache直接解压到c盘根目录,可能也可以在别的目录,但是要改配置文件,我没试过,所以我直接解压在c盘
把下载下来的mod_wsgi解压,下载下来的应该是.whl文件,解压后找到mod_wsgi-4.7.1-cp37-cp37m-win_amd64\mod_wsgi\server\mod_wsgi.cp37-win_amd64.pyd这个文件,把这个文件复制到刚才解压的apache文件夹里
三、在C盘新建一个mydir文件夹,再新建一个flask名字为demo0305项目,放到mydir文件夹里,我把新项目的app.py改名为hello.py了,其他的没动,再在demo0305里新建个myapp.msgi文件,内容为
import sys
sys.path.insert(0, 'c:\\mydir\\demo0305') # 这个目录就是项目所在路径
from hello import app as application
hello.py内容,里面有三个路由
flask项目已经配置结束,下面开始配置apache,找到下面这个配置文件,在180行左右加上LoadModule wsgi_module modules/mod_wsgi.cp37-win_amd64.pyd,这句话是刚才复制进apache的那个pyd文件路径
在这个文件最后加上
<VirtualHost *:80>
ServerAdmin "127.0.0.1"
ServerName localhost:80
DocumentRoot C:\mydir\demo0305
<Directory C:\mydir\demo0305>
Require all granted
</Directory>
WSGIScriptAlias / C:\mydir\demo0305\myapp.wsgi
</VirtualHost>
上面配置说明:
(1)项目路径(不一定要放在apache目录下):
DocumentRoot C:\mydir\demo0305
(2)wsgi模块启动文件(重点):
WSGIScriptAlias / C:\mydir\demo0305\myapp.wsgi
注意:这里的“/”是必须的,表示url前缀,后面可以根据需求修改。
(3)项目路径权限:设置为允许全部,可能apache版本不同,这个配置也不同,查资料时见有其他写法
<Directory C:\mydir\demo0305>
Require all granted
</Directory>
httpd.conf文件比较重要,里面的配置选项需要认真看看!!!
到目前为止,已经全部配置完成,下面cmd进到C:\Apache24\bin下,在命令行输入httpd.exe,不报错即可启动项目,再去浏览器输入接口名称,成功界面!
参考博客:https://blog.csdn.net/k295330167/article/details/80616519