美文网首页
flask项目部署

flask项目部署

作者: 隐墨留白 | 来源:发表于2019-07-19 14:32 被阅读0次

环境 Centos 7.6(纯净版)
所以什么都需要自己安装。进入直接在root目录下。

1、先安装python3.6,命令如下:

1-1 安装相关依赖包。

命令:

sudo yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

1-2 下载安装包并安装

  • 安装wget

    yum install wget
    
  • 下载python3.6.0的安装包

    wgethttps://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz
    
  • 创建python3的文件夹

    mkdir python3
    
  • 解压

    tar -xzvf Python-3.6.0.tgz -C python3
    
  • 切换到安装包目录下

    cd  /python3/Python-3.6.0
    
  • 配置安装路径

    ./configure --prefix=/home/python3
    
  • 安装python3.6.0

    make
    make install
    
  • 创建python3的软链接。
    (1)使用python作为执行命令
    备份原文件为python2(Centos自带python2.7.5)

    sudo mv /usr/bin/python /usr/bin/python2
    

    创建软链接

    sudo ln -s /home/python3/bin/python3 /usr/bin/python
    

    (2)使用python3作为执行命令
    直接创建软连接

    sudo ln -s /home/python3/bin/python3 /usr/bin/python3
    
  • 创建pip的软连接
    (1)执行命令为 pip
    备份python2的pip为pip2

    sudo mv /usr/bin/pip /usr/bin/pip2
    

    为python3的pip创建软链接

    sudo ln -s /home/python3/bin/pip3 /usr/bin/pip
    

    (2)执行命令为 pip3
    为python3的pip3创建软链接

    sudo ln -s /home/python3/bin/pip3 /usr/bin/pip3
    
  • 测试安装是否成功

    #或者python3
    python
    

注意:因为在Centos中,yum源使用的是Python2.7,替换为Python3以后,yum源无法正常工作。所以我们需要修改yum配置文件。

#更改文件权限
sudo chmod 777 /usr/bin/yum
vim /usr/bin/yum # 将#!/usr/bin/python 改为#!/usr/bin/python2.7
#输入:wq保存退出后
sudoyum search pip #用于测试yum是否正常工作。

2、安装Ngnix

2-1 安装Nginx源

rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

安装该rpm后,我们就能在/etc/yum.repos.d/ 目录中看到一个名为nginx.repo 的文件。

2-2 安装Nginx

yum -y install nginx

2-3 测试

whereis nginx
# 会出现如下内容
nginx: /usr/sbin/nginx /usr/lib64/nginx /etc/nginx /usr/share/nginx

2-4 Nginx常用命令

# 启动
nginx
# 重启
nginx -s reload
# nginx服务终止
nginx -s stop
#或者
kill -9 pid
# 测试Nginx配置是否正确
nginx -t
#查看nginx的进程号
ps -ef |grep nginx

2-5 配置Nginx服务

修改配置文件 /etc/nginx/conf.d/default.conf

vim  /etc/nginx/conf.d/default.conf

内容为

server{
listen  80; # 服务器监听端口
server_name xxx.xxx.xxx.xxx; # 这里写你的域名或者公网IP
location / {
    uwsgi_pass  127.0.0.1:8000; # 转发端口,需要和uwsgi配置当中的监听端口一致
    include uwsgi_params; # 导入uwsgi配置
    #uwsgi_param UWSGI_PYTHON /home/自己创建的目录/venv; # Python解释器所在的路径(这里为虚拟环境)
    uwsgi_param UWSGI_PYTHON /usr/bin/python;  
    uwsgi_param UWSGI_CHDIR  /root/blog/;# # 自己创建的目录 项目根目录
    uwsgi_param UWSGI_SCRIPT manage:app; # 指定启动程序
    #比如你测试用test.py文件,文件中app = Flask(name),那么这里就填 test:app
    }
}

输入:wq保存退出后,记得重启Nginx。
如果有报错

nginx: [error] open() "/var/run/nginx.pid" failed (2: No such file or directory)

执行命令:

nginx -c /etc/nginx/nginx.conf

执行完记得再次重启nginx哦。还有另一种解决方法

3、安装uwsgi

3-1 安装uwsgi及组件

yum -y install uwsgi uwsgi-devel uwsgi-plugin-python

3-2 测试是否安装成功

#查看uwsgi版本
uwsgi --version

3-3 配置文件

在blog目录下生成uconfig.ini文件

vim /root/blog/uconfig.ini

内容为:

[uwsgi]
# 外部访问地址,可以指定多种协议,现在用http便于调试,之后用socket  #
socket = 0.0.0.0:8000 # uwsgi的监听端口
# 指向项目目录
chdir =  /root/blog
# flask启动程序文件
wsgi-file = manage.py
# flask在manage.py文件中的app名
callable =app
# 这行一定要加上,不然请求时会出现-- unavailable     modifier requested: 0 --错误提示
plugins = python
# 处理器数
processes = 1
# 线程数
threads = 2

3-3 启动uwsgi项目

#uconfig.ini配置文件是需要提前写好的
uwsgi --ini /root/blog/uconfig.ini

相关文章

网友评论

      本文标题:flask项目部署

      本文链接:https://www.haomeiwen.com/subject/xrlfqctx.html