发布日期

Flask 部署笔记

在开发机上的准备工作

  1. 确认项目没有 bug。
  2. 用 pip freeze > requirements.txt 将当前环境的包导出到 requirements.txt 文件中,方便在部署的时候安装。
  3. 将项目上传到服务器上的 /srv 目录下。这里以 git 的形势。

在服务器上的准备工作

  • sudo apt install python3
  • sudo apt install python3-pip
  • pip3 install --upgrade pip
  • virtualenv 以及 virutalenvwrapper。并创建虚拟环境用到的Python
  • pip3 install virtualenv
  • pip3 install virtualenvwrapper
  • sudo apt install vim
  • vim ~/.bashrc 进入文件中,填入以下两行代码: export WORKON_HOME=$HOME/.virtualenvs source /usr/local/bin/virtualenvwrapper.sh
  • source ~/.bashrc

    创建虚拟环境

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

    安装git

    sudo apt install git 进入虚拟环境中,然后进入到项目所在目录,执行命令:pip install -r requirements.txt,安装好相应的包 在mysql数据库中,创建相应的数据库进行数据迁移

    安装uwsgi

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

[uwsgi]

# 必须全部为绝对路径
# 项目的路径
chdir           = /srv/p1
# 模块
module          = app
# Python虚拟环境的路径
home            = /root/.virtualenvs/p1-env

# 进程相关的设置
# 主进程
master          = true
# 最大数量的工作进程
processes       = 10
# socket文件路径,绝对路径
socket          = /srv/p1/uwsgi.sock
# wsgi文件
wsgi-file       = /srv/p1/app.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 目录下,新建一个文件,叫做 p1.conf,然后将以下代码粘贴进去:

# 配置服务器
server {
    # 监听的端口号
    listen      80;
    # 域名
    server_name www.xxx.com; 
    charset     utf-8;

    # 最大的文件上传尺寸
    client_max_body_size 75M;  

    # 静态文件访问的url
    location /static {
        # 静态文件地址
        alias /srv/p1/static; 
    }

    location / {
        uwsgi_pass  unix:///srv/p1/uwsgi.sock;
        # uwsgi_params文件地址
        include     /etc/nginx/uwsgi_params; 
    }
}

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

备案号:湘ICP备2020019075号 © 2020 yxx All rights reserved. | my github