CentOS 在 Pytohn3.4 环境下部署 flask 项目

一、环境

系统:CentOS

Python版本:3.4.9

需要的组件:Python 三方库 uwsgi、nginx

二、安装

首先安装 Python 第三方库 uwsgi,这里我使用了pipenv虚拟环境,关于该虚拟环境的用法可参考我之前的博客。

pip install uwsgi

这里可能会出现报错:

 Python.h: No such file or directory

原因是缺乏环境依赖,可以安装 python34-delevl 库解决

yum install python34-devel

安装完成之后,进入flask项目主目录,新建一个配置文件 uwsgiconfig.ini

[uwsgi]

socket = 127.0.0.1:8001     //启动程序的端口,和flask端口不一样,选一个没被占用的端口就可以

chdir = /home/www/flask_object     //flask项目所在目录

wsgi-file = manage.py      //flask程序的启动文件,python manage.py runserver 来启动项目的

callable = app      //程序内启用的application变量名

processes = 4     //处理器个数

threads = 2     //线程个数

stats = 127.0.0.1:9191      //获取uwsgi统计信息的服务地址

接下来配置 nginx 的配置文件,这里建议使用虚拟目录,也就是在 vhost 下新建 conf,我使用的是 lnmp 一键包,所以这里不叙述如何添加虚拟网站。

location / {

            include        uwsgi_params;     //这里是导入的uwsgi配置

            uwsgi_pass     127.0.0.1:8001;   //需要和uwsgi的配置文件里socket项的地址
                                             //相同,否则无法让uwsgi接收到请求。

            uwsgi_param UWSGI_PYHOME /home/www/WebBlogold/venv;   //python的位置(虚拟环境下)

            uwsgi_param UWSGI_CHDIR  /home/www/WebBlogold/flask_object;     //项目根目录

            uwsgi_param UWSGI_SCRIPT manage:app;     //启动项目的主程序(在本地上运行
                                                     //这个主程序可以在flask内置的
                                                     //服务器*问你的项目)

        }

这里我使用的虚拟环境是 pipenv ,故而 通过 pipenv --venv 可以得到虚拟环境中的解释器位置

>>> pipenv --venv
/root/.local/share/virtualenvs/wechart-iGsH8lUW

至此配置完成。

三、运行

进入 flask 项目目录,即 uwsgiconfigl.ini 所在目录,执行以下命令

uwsgi uwsigconfig.ini

之后显示如下,即正常运行

CentOS 在 Pytohn3.4 环境下部署 flask 项目

这里使用了 root 权限,生产环境下绝对不可以用root权限!