全新centos6+nginx+mysql+python3+flask环境部署图文教程

1. 安装系统开发包

# 安装pip报错 ModuleNotFoundError: No module named '_ctypes' 解决方法
yum install libffi-devel -y
# 报错 ModuleNotFoundError: No module named '_bz2' 解决方法
yum install bzip2-devel

2.编译安装python3.7

进入tmp路径(本人喜欢把东西都下载到这里),执行以下命令:
cd /tmp/
wget https://www.python.org/ftp/python/3.7.9/Python-3.7.9.tgz
下载完成后(如需Python其他版本:点击此处),执行解压命令:
tar -xzvf Python-3.7.9.tgz
进入解压后的Python-3.7.9文件夹,依次执行以下命令
./configure --prefix=/usr/local/python3
(将python3安装到/usr/local/python3/路径下)
make && make install
ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
(以上两个ln命令是为了方便在终端中直接使用python3和pip3命令)

# _bz2.cpython-37m-x86_64-linux-gnu.so文件下载:https://pan.baidu.com/s/1GzUY4E0G2yVUfqxHOIzn1A (提取码:oiwh)
mv _bz2.cpython-36m-x86_64-linux-gnu.so _bz2.cpython-37m-x86_64-linux-gnu.so
cp _bz2.cpython-37m-x86_64-linux-gnu.so /usr/local/python3/lib/python3.7/lib-dynload/

3.安装和使用virtualenv

前提: python3和pip3都已经安装,执行命令:
pip3 install virtualenv
创建名字为django的虚拟环境,执行命令:
python3 -m venv /home/venv/flask
进入虚拟环境,执行命令:
cd /home/venv/flask/bin
source activate

4.安装第三方库:

安装Flask第三方库列表(requirements.txt),如下:

boto==2.49.0
boto3==1.14.51
botocore==1.17.51
certifi==2020.6.20
chardet==3.0.4
click==7.1.2
docutils==0.15.2
Flask==1.1.2
gensim==3.8.3
idna==2.10
itsdangerous==1.1.0
jieba==0.42.1
Jinja2==2.11.2
jmespath==0.10.0
lxml==4.5.2
MarkupSafe==1.1.1
numpy==1.19.1
Pillow==7.2.0
pip==20.2.2
python-dateutil==2.8.1
python-docx==0.8.10
requests==2.24.0
s3transfer==0.3.3
scipy==1.5.2
setuptools==47.1.0
six==1.15.0
smart-open==2.1.1
urllib3==1.25.10
uWSGI==2.0.19.1
Werkzeug==1.0.1

在Flask虚拟环境下,安装第三方库列表:
cd /tmp
vim requirements.txt # 复制第三方库列表到此文件下,退出并保存:wq!
pip install -r requirements.txt # 安装第三方库列表

5.安装配置uwsgi

[uwsgi]
socket = :8188
#由于外部还要嵌套Nginx,这里可以使用socket进行通信,如果Nginx和uwsgi部署在同一台机器上,直接使用127.0.0.1
#如果外部直接通过uwsgi访问服务,需将socket改为http-socket或者http,将127.0.0.1改为0.0.0.0
chdir=/home/wwwroot/py/aiword
# 启动uwsgi的用户名和用户组
uid=root
gid=root
#项目目录
virtualenv =/home/venv/aiword
#虚拟环境所在路径
wsgi-file = aiword.py
#编写flask代码的py文件
callable = application
#Flask应用对象
master = true
#启动主进程,来管理其他进程
vacuum = true
# 进程个数
workers=4
threads=4
max-requests=2000
# 启用线程
enable-threads=true
#uwsgi启动的进程数,可设为机器核数+1
thunder-lock = true
#防止惊群
harakiri = 60
#超时时间(秒)
daemonize=/home/wwwroot/py/aiword/aiword.log
#进程会在后台运行,并输出日志
pidfile = /home/wwwroot/py/aiword/uwsgi.pid

6.开机自启动

6.1 创建文件/home/ishell/jieba.sh

#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

source /home/venv/aiword/bin/activate
pkill -f -9 uwsgi
uwsgi --ini /home/wwwroot/py/aiword/uwsgi.ini

6.1 配置开机自启动

vim /etc/rc.d/rc.local # 文末添加执行脚本:/home/ishell/jieba.sh

你可能感兴趣的:(全新centos6+nginx+mysql+python3+flask环境部署图文教程)