zoukankan      html  css  js  c++  java
  • Flask实战第68天:项目上线部署

    在开发机上的准备工作

    1、确认项目没有bug

    2、用pip freeze >requirements.txt将当前环境的包导出到requirements.txt文件中,方便部署的时候安装

    3、将dysms_python文件准备好。因为短信验证码的这个带服务器需要手动安装

    4、在https://git-scm.com/downloads下载Windows版本的客户端。然后双击一顿点击下一步安装即可

    5、然后使用码云或者自己搭建gitlab,创建一个仓库

    6、进入项目,使用以下命令做代码提交

    git init
    git remote add origin xxx.git
    git add .
    git commit -m 'first commit'
    git pull origin master --allow-unrelated-histories
    git push origin master

    服务器上的准备工作

    安装好项目用到的Python

    sudo apt install python3
    sudo apt install python3-pip
    pip3 install --upgrade pip

    安装virtualenv以及virutalenvwrapper。并创建虚拟环境

    pip3 install virtualenv
    pip3 install virtualenvwrapper
    sudo apt install vim

    vim ~/.bashrc 进入文件中,填入以下两行代码

     export WORKON_HOME=$HOME/.virtualenvs
      source /usr/local/bin/virtualenvwrapper.sh

    创建虚拟环境

    mkvirtualenv --python=/usr/bin/python3 zlbbs-env

    安装git

    sudo apt install git

    安装MySQL服务器和客户端

     > sudo apt install mysql-server mysql-client
     > sudo apt-get install libmysqld-dev

    进入虚拟环境中,然后进入到项目所在目录,执行命令:pip install -r requirements.txt,安装好相应的包

    在mysql数据库中,创建相应的数据库。
    执行python manage.py db upgrade命令,将迁移文件,映射到数据库中,创建相应的表。
    执行python zlbbs.py,然后在你自己电脑上,在浏览器中输入http://你的服务器的ip地址:8000/,访问下网站所有页 面,确保所有页面都没有错误。
    设置DEBUG=False,避免如果你的网站产生错误,而将错误信息暴漏给用户

    安装uwsgi

    uwsgi是一个应用服务器,非静态文件的网络请求就必须通过他完成,他也可以充当静态文件服务器,但不是他的强项。uwsgi是使用python编写的,因此通过pip install uwsgi就可以了。(uwsgi必须安装在系统级别的Python环境中,不要安装到虚拟环境中)。
    使用命令uwsgi --http :8000 --wsgi-file /opt/zlbbs/zlbbs.py -callable app -H /root/.virtualenvs/zlbbs-env。用uwsgi启动项目,如果能够在浏览器中访问到这个页面,说明uwsgi可以加载项目了

    编写uwsgi配置文件

    [uwsgi]
    
    # Django相关的配置
    # 必须全部为绝对路径
    # 项目的路径
    chdir           = /srv/zlbbs
    # 模块
    module          = zlbbs
    # Python虚拟环境的路径
    home            = /root/.virtualenvs/zlbbs-env
    
    # 进程相关的设置
    # 主进程
    master          = true
    # 最大数量的工作进程
    processes       = 10
    # socket文件路径,绝对路径
    socket          = /srv/zlbbs/zlbbs.sock
    # wsgi文件
    wsgi-file       = /srv/zlbbs/wsgi.py
    # wsgi文件的app变量
    callable        = app
    # 设置socket的权限
    chmod-socket    = 666
    # 退出的时候是否清理环境
    vacuum          = true

    然后使用命令uwsgi --ini zlbbs_uwsgi.ini,看下是否还能启动这个项目

    安装nginx

    nginx是一个web服务器。用来加载静态文件和接收http请求的。通过命令sudo apt install nginx即可安装。
    nginx常用命令:
    启动nginx:service nginx start
    关闭nginx:service nginx stop
    重启nginx:service nginx restart

    编写nginx配置文件

    在/etc/nginx/conf.d目录下,新建一个文件,叫做zlbbs.conf,然后将以下代码粘贴进去:

    upstream zlbbs {
        server unix:///srv/zlbbs/zlbbs.sock; 
    }
    
    # 配置服务器
    server {
        # 监听的端口号
        listen      80;
        # 域名
        server_name 192.168.0.101; 
        charset     utf-8;
    
        # 最大的文件上传尺寸
        client_max_body_size 75M;  
    
        # 静态文件访问的url
        location /static {
            # 静态文件地址
            alias /srv/zlbbs/static; 
        }
    
        # 最后,发送所有非静态文件请求到django服务器
        location / {
            uwsgi_pass  zlbbs;
            # uwsgi_params文件地址
            include     /etc/nginx/uwsgi_params; 
        }
    }

    写完配置文件后,为了测试配置文件是否设置成功,运行命令:service nginx configtest,如果不报错,说明成功。
    每次修改完了配置文件,都要记得运行service nginx restart

    使用supervisor配置

    让supervisor管理uwsgi,可以在uwsgi发生意外的情况下,会自动的重启

    supervisor的安装:在系统级别的python环境下pip install supervisor。
    在项目的根目录下创建一个文件叫做zlbbs_supervisor.conf。内容如下

    # supervisor的程序名字
        [program:zlbbs]
        # supervisor执行的命令
        command=uwsgi --ini zlbbs_uwsgi.ini
        # 项目的目录
        directory = /srv/zlbbs 
        # 开始的时候等待多少秒
        startsecs=0
        # 停止的时候等待多少秒
        stopwaitsecs=0  
        # 自动开始
        autostart=true
        # 程序挂了后自动重启
        autorestart=true
        # 输出的log文件
        stdout_logfile=/srv/zlbbs/log/supervisord.log
        # 输出的错误文件
        stderr_logfile=/srv/zlbbs/log/supervisord.err
    
        [supervisord]
        # log的级别
        loglevel=info
    
        # 使用supervisorctl的配置
        [supervisorctl]
        # 使用supervisorctl登录的地址和端口号
        serverurl = http://127.0.0.1:9001
    
        # 登录supervisorctl的用户名和密码
        username = admin
        password = 123
    
        [inet_http_server]
        # supervisor的服务器
        port = :9001
        # 用户名和密码
        username = admin
        password = 123
    
        [rpcinterface:supervisor]
        supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

    然后使用命令supervisord -c zlbbs_supervisor.conf运行就可以了。
    以后如果想要启动uwsgi,就可以通过命令supervisorctl -c supervisor.conf进入到管理控制台,然后可以执行相关的命令进行管理:

    status # 查看状态
    start program_name #启动程序
    restart program_name #重新启动程序
    stop program_name # 关闭程序
    reload # 重新加载配置文件
    quit # 退出控制台

  • 相关阅读:
    2019.9.18 csp-s模拟测试46 反思总结
    2019.9.17 csp-s模拟测试45 反思总结
    矩阵求导(包含极大似然估计)
    sir
    Square into Squares. Protect trees!(平方数分解平方和)
    最小二乘法
    2.5&2.6 numpy&pandas 笔记
    2.4 python学习笔记
    2.3 python学习笔记
    2.1&2.2python学习笔记
  • 原文地址:https://www.cnblogs.com/sellsa/p/9762861.html
Copyright © 2011-2022 走看看