Flask项目腾讯云ubuntu18.04部署

部署环境

硬件环境:腾讯云 ubuntu18.04

软件环境:Python3.6.9、依赖库见Pipfile.lock、MySQL5.7、Redis、Memcached

开发环境

硬件环境:Windows 10 64位

软件环境:Python3.7.1、MySQL5.7、Redis、Memcached、Vue2、Element UI、Bootstrap、jQuery、七牛云

开发平台:Pycharm2019.3、HBuilderX(创建前端环境采用vue ui方式)

部署

后端开发机工作

1、确认没有bug

2、python -m pip freeze > requirements.txt:将当前环境的包导入到requirements.txt中

3、将项目上传到服务器的/srv目录上。git形式(采用Gitee)

  • git init

  • git remote add origin XXX.git

  • git add .

  • git commit -m 'jn first'

  • git pull origin main --allow-unrelated-histories

  • git push origin main

4、第二次提交代码

  • git add .

  • git commit -m 'jn first'

  • git push origin main

服务器工作

1、安装好项目用到的Python服务器版本

  • sudo apt install python3.7

  • sudo apt install python3-pip

  • pip3 install --upgrade pip

2、安装虚拟环境

  • pip3 install virtualenv

  • pip3 install virtualenvwrapper

  • sudo apt install vim

  • vim ~/.bashrc 进入文件夹后添加如下内容

export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
source ~/.local/bin/virtualenvwrapper.sh
# 这里根据不同的系统配置不同,本系统为ubuntu18.04
  • source ~/.bashrc

  • mkvirtualenv pa-flask-py3

可能存在错误:ERROR: virtualenvwrapper could not find /usr/local/bin/virtualenv in your path

错误原因如英文所示因为路径问题只需执行下面的命令复制路径即可

sudo cp ~/.local/bin/virtualenv /usr/local/bin/

3、安装git

  • sudo apt install git

4、安装XShell或者CRT链接服务器,建议安装‘OpenSSH’

  • sudo apt install openssh-server openssh-client

  • service ssh restart

5、安装mysql服务器和客户端

  • sudo apt install mysql-server mysql-client

  • sudo apt-get install libmysqld-dev # 用于Pthon操作MySQL

6、安装依赖库

  • pip3 install -r requirements.txt

7、在mysql中创建指定数据库

  • mysql -u root -p

  • create database dataname charset utf8;

刚下载的mysql可能需要设置root用户

https://blog.csdn.net/weixin_36353180/article/details/113535603

8、把项目从git中拉取下来

  • cd /srv

  • mkdir 项目文件夹名,用于存放项目源文件

  • git init

  • git remote add origin XXX.git

  • git pull origin master

  • 第二次拉取代码直接:git pull origin master

9、将迁移脚本映射到数据库建立相应的表

  • python manage.py migrate

10、执行python manage.py runserver 0.0.0.0:8000, 然后浏览器中访问http://服务器IP地址:8000/,访问网站中的所有页面,确保所有页面都没有错误。

11、设置ALLOWED_HOSTS = ['jinan.com', 'www.jinan.com', '192.168.10.25'] 域名备案后才能写,写到配置文件中

12、如果时间不正确,尝试设置亚洲东上海时间

13、将DEBUG=False

14、收集静态文件,把静态文件放到ngix,提高运行速度:

配置文件添加内容:

STATIC_URL = '/static'

STATIC_ROOT = os.path.join(BASE_DIR, 'static_dist')

终端运行内容:

python manage.py collectstatic

 

安装uwsgi

1、一个应用服务器、非静态文件必须通过它完成。ngix是静态文件

2、安装到系统级别的Python环境: python -m pip install uwsgi

  • ubuntu下安装uwsgi:sudo pip3 install uwsgi

3、使用命令:uwsgi --http :8000 --model pa.wsgi --virtualenv /root(根目录)/.virtualenvs(包含虚拟环境目录)/flask_study_env(虚拟环境) 启动项目(运行项目)

4、编写uwsgi配置文件:

在项目路径下面,创建一个文件叫做:pa_uwsgi.ini

不经常改动的放到配置文件中,如:

  • 项目路径:绝对路径

  • wsgi文件

  • Python虚拟环境路径

  • http = 8000

使用命令:uwsgi --ini pa_uwsgi.ini就可以执行配置文件(即运行项目)

[uwsgi]
# 项目路径,必须为绝对路径
chdir = ~/papy
module = ZL.wsgi
# 虚拟环境路径
home = ~/.virtualenvs/pa-flask-env-py3
# http :5000
​
# 进程相关配置
# 主进程
master = true
# 最大数量的工作进程
process = 10
# socket文件路径,绝对路径
socket = /srv/pa/pa.sock
# 设置socket权限
chomd-socket = 666
# 退出的时候是否清理环境
vacuum = true

 

nginx

1、安装:apt install nginx

2、常用命令:

  • 启动nginx: service nginx start

  • 关闭nginx: service nginx stop

  • 重启nginx: service nginx restart

3、配置文件

在 /etc/nginx/conf.d 目录下,新键文件:pa.conf

upstream pa{
    server unix:///srv/pa/pa.sock;
}
​
# 配置服务器
server{
    # 监听端口号
    listen 80;
    # 域名
    servername 192.168.10.25;
    charset utf-8;
    # 最大文件上传尺寸
    client_max_body_size 75M;
    
    # 静态文件访问url
    location /static{
        # 静态文件地址
        alias /srv/pa/static_dist;
    }
    # 非静态文件请求到flask服务器
    location / {
        uwsgi_pass pa;
        include /etc/nginx/uwsgi_params;
    }
}
  • 写完配置文件要测试一下:service nginx configtest

  • 每次更新完配置文件要重启:service nginx restart

 

supervisor配置

用于管理uwsgi,可以在uwsgi发生意外的情况下让你自动启动,为守护进程

1、安装系统级别python环境下:sudo pip3 install supervisor

2、在项目根路径下创建文件pa_supervisor.conf。内容如下:

# supervisor的程序名字
[program:mysite]
# supervisor执行的命令
command=uwsgi --ini pa_uwsgi.ini
# 项目的目录
directory = ~/papy/
# 开始的时候等待多少秒
startsecs=0
# 停止的时候等待多少秒
stopwaitsecs=0
# 自动开始
autostart=true
# 程序挂了后自动启动
autorrestart=true
# 输出的log文件
stdout_logfile = ~/papy/pa_log/supervisord.log
# 输出错误文件
stderr_logfile = ~/papy/pa_log/supervisor.err
​
[supervisord]
# log级别
loglevel = info
​
# 使用supervisorctl的配置
[supervisorctl]
serverurl = http://127.0.0.1:9001
​
# 登录supervisorctl的用户名和密码
username = pa
password = 123456
​
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

3、创建日志文件和错误文件

4、启动:supervisord -c pa_supervisor.conf

5、运行uwsgi:supervisorctl -c pa_supervisor.conf

然后进入控制台可以执行相关命令进行管理:

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

 

 

 

 

安装memcached

  • sudo apt-get install memcached

停止memcached服务:sudo systemctl stop memcached

激活memached服务: sudo systemctl enable memcached

启动memcached服务: sudo systemctl start memcached

检查memcached服务是否正常启动: sudo netstat -enp|grep 11211

telnet连接memcached服务器: telnet 127.0.0.1 11211

退出:quit

 

安装redis

下载redis:sudo wget http://download.redis.io/releases/redis-5.0.5.tar.gz

解压:sudo tar -zxvf redis-5.0.5.tar.gz

安装到/usr/local下

cd /usr/local
sudo mkdir redis
sudo mv ~/redis-5.0.5 /usr/local/redis
cd redis

安装gcc,用于编译redis

sudo apt-get remove gcc
sudo apt-get remove g++
cd /etc/apt --修改sources.list 换成外国的源deb 
sudo vim sources.list

源文件如下

deb http://cn.archive.ubuntu.com/ubuntu/ bionic main restricted
deb http://cn.archive.ubuntu.com/ubuntu/ bionic-updates main restricted
deb http://cn.archive.ubuntu.com/ubuntu/ bionic universe
deb http://cn.archive.ubuntu.com/ubuntu/ bionic-updates universe
deb http://cn.archive.ubuntu.com/ubuntu/ bionic multiverse
deb http://cn.archive.ubuntu.com/ubuntu/ bionic-updates multiverse
deb http://cn.archive.ubuntu.com/ubuntu/ bionic-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu bionic-security main restricted
deb http://security.ubuntu.com/ubuntu bionic-security universe
deb http://security.ubuntu.com/ubuntu bionic-security multiverse
#将这些源文件替换sources.list文件中所有内容

更新源

sudo apt-get update
sudo apt-get upgrade

安装gcc:sudo apt install gcc

进入redis-5.0.5目录下编译redis:sudo make install

测试编译是否存在错误:sudo make test

如有错误安装tcl8.5可以解决错误:sudo apt-get ctl8.5

再次测试编译:sudo make test

 

启动reids./src/redis-server

生产环境需安装redis-server:

  • cd utils

  • sudo ./install_server.sh

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值