uwsgi centos python3 flask 部署
uwsgi centos python3 flask 部署
1. 添加一个用户
新增用户
adduser python3
修改密码
passwd python3
添加到sudo用户组
gpasswd -a python3 wheel
切换到python3 用户
sudo -iu python3
注意: 下方所有的命令,都是切换到了python3用户进行的,所以要带上sudo
2. 初始化环境
初始化仓库
sudo yum install epel-release -y
安装gcc ,nginx
sudo yum install gcc -y
3. 安装 anaconda
下载地址 : www.anaconda.com/distribution
下载地址 : https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/?C=M&O=D
下载Anaconda 的安装文件
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2019.10-Linux-x86_64.sh
安装 :
sh Anaconda3-2019.10-Linux-x86_64.sh
回车
空格
配置安装路径
yes
如果安装异常
https://zhuanlan.zhihu.com/p/64930395
安装路径 给 根目录下 /anaconda3
4. 创建python虚拟环境
激活anaconda
source /anaconda3/bin/activate
安装virtualenv
pip install virtualenv
创建目录
mkdir ~/myproject
cd ~/myproject
创建虚拟环境目录 -- 一定要指定 python 路径
virtualenv -p /anaconda3/bin/python python3_flask
激活新创建的虚拟环境
source python3_flask/bin/activate
离开虚拟环境 deactivate
退出anaconda环境 conda deactivate
5. 初始化一个简单的flask应用
上传文件
pip install flask
如果有防火墙
sudo firewall-cmd --permanent --add-port=5000/tcp
sudo firewall-cmd --reload
6.创建uwsgi.ini 在项目根目录下
uwsgi.ini
[uwsgi]
#工程目录
chdir = /python_project/xxx
#虚拟环境目录
home = /home/python3/myproject/python3_xxx
#启动flask应用的文件名,不用加py
module = app
callable=app
master = true
processes = 5
chmod-socket=666
logfile-chmod = 644
py-autoreload=1
threads = 100
http = 0.0.0.0:5000
die-on-term = true
vacuum=true
socket=%(chdir)/uwsgi/uwsgi.sock
stats=%(chdir)/uwsgi/uwsgi.status
pidfile=%(chdir)/uwsgi/uwsgi.pid
daemonize=%(chdir)/uwsgi/uwsgi.log
7.安装 uwsgi
跳出虚拟环境
离开虚拟环境 deactivate
安装 uwsgi
pip install uwsgi
8.启动
uwsgi --ini uwsgi.ini
uwsgi 启动报错
uwsgi: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
把anaconda3/lib 下相应的包软链到/lib64下去(64bit 机器,如果时32bit 机器则软链到/lib下)
sudo ln -s /anaconda3/lib/libssl.so.1.1 /lib64/libssl.so.1.1
(py3) [root@localhost ~]# ln -s /root/anaconda3/lib/libicui18n.so.58 /lib64/libicui18n.so.58
(py3) [root@localhost ~]# ln -s /root/anaconda3/lib/libicuuc.so.58 /lib64/libicuuc.so.58
(py3) [root@localhost ~]# ln -s /root/anaconda3/lib/libicudata.so.58 /lib64/libicudata.so.58
把进入anaconda3的lib下的目录,将libstdc++.so.6.0.24拷贝到/lib64目录下。
cp libstdc++.so.6.0.24 /lib64/
进入/lib64目录删除原来的libstdc++.so.6符号连接。
rm -rf libstdc++.so.6
新建新符号连接。
ln -s libstdc++.so.6.0.24 libstdc++.so.6
再次执行查看结果符合就哦了。
日志文件夹得给权限 sudo chmod 777 -R uwsgi
9.关闭
sudo pkill -f uwsgi -9