1、Python環境部署
Python3.7.8 https://www.python.org/ftp/python/3.7.8/Python-3.7.8.tgz
···在服務器/usr/local目錄下,新建python3.7文件夾
···在/usr/local/python3.7目錄下執行
tar -zxvf Python -3.7.8.tgz
···解壓完畢后, 進入到/usr/local/python3.7/Python-3.7.8目錄,執行./configure命令:
./configure
···成功后,執行安裝命令:
make && make install
成功后會提示pip 安裝成功!
···安裝完畢后,使用python -V命令還是顯示出默認的python編譯器,需要修改alias
~/.bashrc
添加一條 alias python='/usr/local/python3.7/Python-3.7.8/python'
如下文
保存完了記得source ~/.bashrc
然后執行python -V命令
python -V
Python 3.7.8
···在接下來安裝python庫的時候,可能會報一些pip、pip版本、或者setuptools的錯,可以按照提示執行命令,大致的命令有以下幾個:
python -m pip install
/usr/local/bin/python3.7 -m pip install --upgrade pip
pip3 install --upgrade setuptools
下為.bashrc文件內容
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias python='/usr/local/python3.7/Python-3.7.8/python'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
2、安裝uwsgi
pip3 install uwsgi
3、在Flask項目根目錄下邊創建uwsgi.ini文件
截屏2023-03-14 上午11.54.44.png
文件內容如下:
[uwsgi]
http=0.0.0.0:8086
chdir=/home/www/py/flaskProject1
wsgi-file=/home/www/py/flaskProject1/app.py
callable=app
master=true
processes=1
threads=10
daemonize=uwsgi.log
disable-logging=true
pidfile=uwsgi.pid
buffer-size=65536
harakiri=60
vacuum=True
參數說明:
http參數是設置ip+端口號,主要是端口號,這里設置的和后續Nginx設置的項目端口號一致。
chdir參數是項目在服務器中存放的路徑。
wsgi-file是啟動文件在服務器中存放的路徑。
daemonize是日志記錄,會在同目錄下生成uwsgi.log文件
其他參數根據自己項目情況需求調整,一般這樣寫就可以。
4、把Flask項目放入文件夾
3步驟已經編輯好了uwsgi.ini文件,chdir參數設置的是文件目錄/home/www/py/flaskProject1。
把flask項目整個文件夾放入/home/www/py路徑下,環境文件夾venv如果太大可以不放入,然后通過pip3 install -r requires.txt 來安裝相應的庫。
5、配置Nginx
server {
listen 8086; #和uwsgi.ini文件中設置的端口號一致
server_name 127.0.0.1; #訪問ip
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:5000; #代理到uwsgi.ini里兼容的ip和端口
}
}
6、啟動uwsgi和Nginx
#啟動uwsgi
在項目目錄執行 uwsgi --ini uwsgi.ini
可以通過ps -ef |grep uwsgi指令查看運行狀態
ps -ef |grep uwsgi
root 14850 1 0 16:47 ? 00:00:00 uwsgi --ini uwsgi.ini
root 14865 14850 67 16:47 ? 00:09:58 uwsgi --ini uwsgi.ini
root 14866 14850 0 16:47 ? 00:00:00 uwsgi --ini uwsgi.ini
root 32721 16976 0 17:02 pts/0 00:00:00 grep --color=auto uwsgi
#其他指令-關閉
uwsgi --stop uwsgi.pid #14850,如果uwsgi.pid不是上邊查到的14850,就會報錯(signal_pidfile()/kill(): No such process [core/uwsgi.c line 1695]),這時候需要打開當前文件夾中uwsgi.pid文件,手動修改數值,之后再執行關閉指令。
#啟動Nginx
nginx -s reload
完成!
接下來就可以通過服務器ip+8086端口訪問到Flask項目了!