美文网首页
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