项目为什么需要部署到Apache上?
一般来说在测试环境上,大家都是直接用app.run(host=‘0.0.0.0’,port=5000)这样的形式来发布自己的项目并观察网页结构的改变,这样并不是不可以,只是只适用于测试环境上,如果进入线上环境的话会因为并发和性能的问题而导致网页非常的卡顿以致于给用户的体验造成影响,所以为了避免这种情况的发生,我们使用apache来发布自己的项目是非常友好的。
为什么使用mod_wsgi?
因为正常来说apache是不支持python所编写的web项目,这个时候我们需要给apache打上一个模块,让他支持python所编写的web项目,而这个模块就是mod_wsgi了,所以mod_wsgi是必不可少的部分。
好了,废话就不多说了,下面进入正题吧!!!
下载所需软件包
Flask所编写的程序环境基于Python3,所以下载Python3所需要的所有软件包,也可以称为是依赖包,这样可以避免Python3在编译安装的时候出现编译错误的情况,也可以防止Apache在编译安装时所出现的错误。
下载安装包命令如下:
yum -y install gcc gcc-c++ autoconf libxml2 libxml2-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers
#基础包,防止出现其他错误,如果安装出现个别软件包不能安装实属正常
上述安装包是基础包,下面会介绍一些编译时所需的安装包,如果没有会提示缺少某个模块而导致不能正常编译安装软件,所以在这里把他们提出来重点讲讲。
yum -y install openssl openssl-devel #pip安装模块时需要,否则提示没有ssl模块
yum -y install expat-devel #apr-util安装时需要,否则会报错提示没有expat.h
Yum -y install libffi-devel #python安装时需要,否则会报错提示没有_ctypes.h
下载软件源码包
进入"/usr/src/"目录下,这个目录经常被用于放置一些编译安装的源码包,所以提前来到这里面。
cd /usr/src
然后在这个目录中使用wget命令下载网上的源码包,之后用来编译安装他们。
wget http://mirror.bit.edu.cn/apache/apr/apr-1.6.5.tar.gz
wget http://mirror.bit.edu.cn/apache/apr/apr-util-1.6.1.tar.gz
wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.4.39.t