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

https://blog.csdn.net/MarsYWK/article/details/86704428?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control

把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
posted @ 2020-12-03 20:01  AngDH  阅读(343)  评论(0编辑  收藏  举报