前言
- 最近在学习 CentOs 服务器环境,刚好做腾讯小程序设计大赛, 项目需要用到 flask 和爬虫写后端。本文记录了如何部署 flask 项目
- 若是在 Ubuntu 上用 nginx+uwsgi 部署 flask 项目, 可以参考我的另外一篇文章。
- 版本:python3.5.0,CentOs7.6
一. 环境准备
- python3.5.0
- setuptools
- pip3
- uwsgi
- flask
-
安装 python3.5.0
- 下载 python 的包
[root@VM_0_15_centos local]# wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26
[root@VM_0_15_centos local]# tar -zxvf python3.5.0
[root@VM_0_15_centos local]# cd Python3.5.0
[root@VM_0_15_centos local]# ./configure
[root@VM_0_15_centos local]# make &&make install
- 现在 python3.5.0 已经安装好了, 但是很可能你输入
python3 --version
会发现找不到 python - 解决办法: 看第二步
- 下载 python 的包
-
uwsgi(/nginx/python/pip3 等)安装好后,command not found 的解决办法
find / -name uwsgi
- 假设找到的地址为
/usr/local/bin/uwsgi
- 建立软连接
sudo ln -s /usr/local/bin/uwsgi /usr/bin/uwsgi
- 注意: 建立软链接时最好 sudo, 不然很可能还是 command not found
-
安装 setuptools
- 同样下载 setuptools 的包
wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26
- 解压
tar -zxvf setuptools-19.6.tar.gz
cd setuptools-19.6
- 分别执行
python3 setup.py build
,python3 setup.py install
-
顺利的话:
Processing dependencies for setuptools==19.6 Finished processing dependencies for setuptools==19.6
- 同样下载 setuptools 的包
-
安装 pip
- 同样下载 pip 的包
wget --no-check-certificate https://pypi.python.org/packages/source/p/pip/pip-8.0.2.tar.gz#md5=3a73c4188f8dbad6a1e6f6d44d117eeb
- 解压
tar -zxvf pip-8.0.2.tar.gz
cd pip-8.0.2
- 分别执行
python3 setup.py build
,python3 setup.py install
-
顺利的话:
Processing dependencies for pip==8.0.2 Finished processing dependencies for pip==8.0.2
- 同样下载 pip 的包
-
安装 pip 需要的 openssl 和 openssl-devel
执行yum install openssl
和yum install openssl-devel
注意很可能还需
yum -y install python3-devel
- 安装 uwsgi
pip3 install uwsgi
-
安装 flask 和项目需要的一些包(只是本项目需要的包)
首先进入到项目目录里pip3 install flask
pip3 install virtualenv
pip3 install flask_sqlalchemy
pip3 install sqlalchemy
pip3 install flasgger
pip3 install flask_cors
二. 代理服务器配置
-
配置文件 uwsgi.ini
sudo vim uwsgi.ini
基本内容:[uwsgi] chdir=/home/dbc/gameEvent callable=app wsgi-file=app.py processes = 5 http=0.0.0.0:8001 chmod-socket=666 max-requests=1000
-
nginx 配置
进入 nginx 的 conf 目录下(目录结构不一样哟!)cd /www/server/nginx/conf
sudo vim flask.conf
server{ listen 8001; server_name 0.0.0.0; #访问 ip location / { include uwsgi_params; uwsgi_pass 127.0.0.1:5000; #代理到 uwsgi.ini 里兼容的 ip 和端口 } }
- 生成 uwsgi 日志目录
mkdir /var/log/uwsgi
- 跑起来
uwsgi uwsgi.ini -d /var/log/uwsgi.log
最后
- 参考链接:1,2