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文件
文件内容如下:
[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项目了!