记录一下基于python3的apache+mod_wsgi+flask的详细安装步骤,同时配置html和siterestfulapi进行站点访问。mod_wsgi是以扩展的方式引入的,所以我需要得到编译好的mod_wsgi.so文件。可以去github下载文件编译安装。下面是我使用的pip3安装。使用pip3安装mod_wsgi$yuminstallpython36-develhttpd-devel$/usr/bin/pip3install-vmod_wsgi安装成功后,找到服务器mod_wsgi文件夹下的文件夹路径/to/python3.6/site-package/smod_wsgi/server下有一个mod_wsgi.so文件mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so,在apache中引入扩展名:#进入mod_wsgi下的server文件夹$cd/usr/local/lib64/python3.6/site-packages/mod_wsgi/server#将文件夹下的mod_wsgi.so文件复制到apache的modules模块$cpmod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so/usr/local/apache/modules/mod_wsgi.so在虚拟环境中安装Flask用pip安装virtualenv$pip3installvirtualenv创建开发项目project并进入项目$mkdirproject$cdproject创建一个独立的Python运行环境,命名为venv,进入环境withsource$virtualenv--no-site-packagesvenv$sourcevenv/bin/activate在虚拟机中安装flask环境$pip3安装fl问配置站点/data/www/project├──api│└──api.py├──index.html站点目录结构如图,首页为根目录下的index.html请求http://localhost/index.html,api请求为http://localhost/api/list新建文件app.wsgiimportsyssys.path.insert(0,"/data/www/project/api/")fromapiimportappasintheapidirectoryapplicationif__name__=="__main__":application.run()从flaskimportFlask,jsonifyapp=Flask(__name__)@app.route('/list')defgetList():returnjsonify('success')if__name__=='__main__':app.run()配置Apache加载mod_wsgi.so模块,修改Apache的httpd.conf,添加LoadModulewsgi_modulemodules/mod_wsgi.so$vim/usr/本地/apache/conf/httpd.confLoadModulewsgi_modulemodules/mod_wsgi.so修改站点配置文件$vim/usr/local/apache/conf/vhost/default.conf
