Linux下安装Flask
环境配置:阿里云服务器ECS,操作系统CentOS 8.3 64位
操作流程:
#第一步
#安装Apache
yum install -y httpd httpd-devel
#安装完成后,开启Apache服务
systemctl start httpd #开启服务
systemctl enable httpd #开机自启
systemctl stop httpd #关闭
systemctl restart httpd #重启
#第二步
#安装依赖包
yum install -y libffi-devel openssl-devel
sudo dnf install redhat-rpm-config
#第三步
#安装Python
#服务器自带python3.6.8版本以及pip9.0.3版本,可以直接使用
#我曾尝试安装python3.9和python3.8,却在后面的mod_wsgi安装上出错,不知道是不是我安装的问题,建议还是使用服务器自带版本
#第四步
#安装virtualenv
pip3 install virtualenv
#第五步
#创建flask
mkdir /var/www/html/flask
cd /var/www/html/flask
virtualenv py3 #创建虚拟环境
source py3/bin/activate #进入虚拟环境 deactivate关闭虚拟环境
(py3) pip3 install flask #安装flask
(py3) pip3 install mod_wsgi #安装mod_wsgi
#第六步
#在flask目录下创建app.py文件
#文件内写入以下代码
#-------------------------
from flask import Flask, request
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World'
if __name__ == '__main__':
app.run()
#-------------------------
#第七步
#在flask目录下创建qpp.wsgi文件
#文件内写入如下代码
#-------------------------
activate_this = '/var/www/html/flask/py3/bin/activate_this.py'
with open(activate_this) as file_:
exec(file_.read(), dict(__file__=activate_this))
import sys
sys.path.insert(0, '/var/www/html/flask')
from app import app as application
#-------------------------
#第八步
#执行如下命令
mod_wsgi-express install-module
#输出以下内容
LoadModule wsgi_module "/usr/lib64/httpd/modules/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so"
WSGIPythonHome "/var/www/html/flask/py3"
#第九步
#配置Apache
#打开/etc/httpd/conf/httpd.conf文件,在文件末尾写入如下代码
#-------------------------
LoadModule wsgi_module "/usr/lib64/httpd/modules/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so"
<VirtualHost *:80>
ServerName example.com
WSGIScriptAlias / /var/www/html/flask/app.wsgi
<Directory /var/www/html/flask>
Require all granted
</Directory>
</VirtualHost>
#-------------------------
#第十步
#重启Apache
#打开公网IP就能看到效果了
#可能出现的问题
重启Apache报错,可能是第九步的代码写入存在错误,其中LoadModule wsgi_module地址一定要与第八步输出的地址一致