1. 程式人生 > 實用技巧 >uwsgi centos python3 flask 部署

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