1.环境准备
安装前需要yum需要的包,如下所示
yum install gcc-c++
yum -y install zlib*
yum -y install bzip2 bzip2-devel ncurses openssl openssl-devel openssl-static xz lzma xz-devel sqlite sqlite-devel gdbm gdbm-devel tk tk-devel libffi-devel
2.安装python
2.1下载解压
mkdir /usr/local/python3 #创建目录
cd /usr/local/python3
wget --no-check-certificate https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz
tar -xzvf Python-3.6.2.tgz # 解压缩包
cd Python-3.6.2./configure --prefix=/usr/local/python3 # 指定创建的目录
make & make install # 编译安装
出现Successfully installed pip-9.0.1 setuptools-28.8.0 则表示安装成功
ps:如果未出现以上字样,或者出现卡顿情况,可以中断,重新执行make & make install
2.2python3软连接
ln -s /usr/local/python3/bin/python3 /usr/bin/python3 #创建 python3 的软链接
3.安装pip
3.1源准备
sudo yum -y install epel-release # 首先安装 epel 扩展源
sudo yum -y install python-pip # 安装 python-pip
sudo yum clean all # 清除 cache
3.2下载解压
cd /usr/local/python3
wget --no-check-certificate https://github.com/pypa/pip/archive/9.0.1.tar.gz
tar -zvxf 9.0.1.tar.gz # 解压文件
cd pip-9.0.1
python3 setup.py install # 使用 Python 3 安装
3.3软连接
ln -s /usr/local/python3/bin/pip /usr/bin/pip3 #创建 pip 的软链接
3.4升级pip
pip3 install --upgrade pip #升级 pip
4.安装 gunicorn
4.1创建虚拟环境
mkdir -p /home/service #创建服务目录
cd /home/service
mkdir venv
python3 -m venv venv
4.2激活虚拟环境
source venv/bin/activate
4.3上传项目
项目上传到/home/service目录下
然后根据 requirements.txt 文件安装依赖包,指定下载源为https://pypi.tuna.tsinghua.edu.cn/simple,国内下载比较快速
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
4.4安装gunicorn
pip3 install gunicorn
5.安装supervisor
5.1supervisor安装
pip3 install supervisor
5.2supervisor配置
mkdir -p /etc/supervisor
cd /etc/supervisorvim supervisord.conf
关键部分配置如下,其中红色部分home/service为创建的服务目录
[program:myservice]
command=/home/service/venv/bin/gunicorn -c gunicorn_config.py app:app --preload --log-level=debug
directory=/home/service
startsecs=0
stopwaitsecs=0
autostart=false
autorestart=false
stdout_logfile=/home/service/logs/gunicorn.log
stderr_logfile=/home/service/logs/gunicorn.err
;[include]
;files = relative/directory/*.ini
6.启动服务
6.1加载配置,启动服务
其中myservice为对应配置部分program:myservice
cd /home/service
supervisord -c /etc/supervisor/supervisord.conf #加载文件
supervisorctl start myservice
6.2查看日志
tail -222f /home/service/logs/gunicorn.err
6.3查看服务
pstree -ap|grep gunicorn或者
curl http://localhost:21102
7.一些可能用到的命令
搜索gunicorn服务,并强制删除
ps -ef|grep gunicorn|grep -v grep|cut -c 9-15|xargs kill -9
运行supervisord -c /etc/supervisor/supervisord.conf 加载文件时,如果遇到报错,可使用如下命令处理
unlink /tmp/supervisor.sock