uwsgi centos python3 flask 部署
阿新 • • 發佈:2020-12-03
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