『Graduation project』系统部署相关

受苦两天,于是把过程记录一下(but今天已经忘得差不多了(?

(感谢学长的指导和学弟服务器的提供

IMG_4209_20210708-080829_ _2_.JPG


本毕设项目采用的是前后端分离的框架。

  • 前端:Vue+nginx
  • 后端:Flask+uwsgi
  • 数据库:Mysql

学院的服务器是Windows系统,于是嫖了学弟的Linux先实现(乐


Ⅰ 宝塔面板+阿里云服务器

01 版本

  • 前端vue部署采用nginx,版本为1.20.2
  • 后端flask部署采用uwsgi,版本为2.0.20
  • 数据库版本为5.6.50
  • 宝塔面板,系统版本为CentOS 8.5.2111
  • 阿里云Linux服务器

02 部署过程

一 数据库

  • 下载安装navicat

    大概是这个意思,具体每个按钮叫啥忘了(理直气壮

    • 提取码:k0d5
    • 解压,运行【navicat150_premium_cs_x64.exe】,安装navicat
    • 破解:
      • 运行【navicat_keygen_patch_v5.5_by_dfox.exe】
      • 在【1)Patch】中点击【Patch】,指向navicat安装目录
      • 在【4)-Key…】中点击【Generate】获取许可证
      • 断网
      • 打开【navicat】,输入许可证,选择【手动激活】
      • 将第一个框内的字符串复制,粘贴至破解器【4)-Key…】的【Request Code】
      • 点击【4)-Key…】中的【Generate】
      • 【navicat】第二个框出现字符串,点击【Next】
      • 破解完成
  • 连接服务器

    • 打开【navicat】,选择【连接】【Mysql】
    • 在跳出的对话框选择【SSH】,输入相关信息,主机即IP地址,用户名root,密码为阿里云服务器密码。点击【测试连接】,Navicat——SSH服务器变绿。
    • 选择【常规】,输入相关信息,连接名随意,主机即IP地址,端口不变,用户名为root,密码为服务器数据库密码。点击【测试连接】,连接成功。
    • 点击【确定】
  • 数据导入

    因本人本地数据库版本为8.x,而服务器数据库版本为5.x,数据库字符集冲突,所以按以下步骤实现

    • 把本地数据库sql文件导出,用记事本打开,替换所有字符集编码
    • 在【navicat】中右键选择【运行SQL文件】即可

二 前端Vue

  • 导入前端文件

    • 本地vue项目打包获得dist文件夹,压缩

      1
      npm run build
    • 在【宝塔】的【文件】中新建文件夹,上传dist压缩文件,解压即可

  • 创建站点

    • 在【宝塔】的【网站】中点击【添加站点】
    • 在跳出的对话框中选择相应信息,根目录指向上述新建文件夹
  • nginx配置

    • 打开【站点】右侧【操作】中的【设置】,选择【配置文件】

    • root指向新建文件夹下的dist文件夹

      1
      root /www/wwwroot/新建文件夹/dist;
    • 重新加载配置文件(终端

      1
      nginx -s reload
    • 其余配置更新参考

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      #动态请求 这个是后端的请求0406
      location / {
      include uwsgi_params;
      uwsgi_pass 127.0.0.1:5000;#后端服务的server
      }

      #0405新加的
      location /api {
      proxy_pass http://127.0.0.1:5000;
      proxy_connect_timeout 600;
      proxy_read_timeout 600;
      rewrite "^/api/(.*)$" /$1 break;
      }

      有几个好像不太对劲,但是目前运行很正常(

  • 点击站点名,即可显示网站首页

三 后端Flask

后端的python文件放在gitee上了,服务器使用的时候直接从git库里clone/pull下来就行

不要用校园网测试0.0.0.0是否可行,会变得不幸(

  • 文件上传前操作

    • appointDB.py数据库名称、密码修改

    • app.py最后一行括号内改为

      1
      app.run(host='0.0.0.0', port='5000')
    • cmd进入后端项目根目录,导出依赖

      1
      pip freeze > requirements.txt
  • 文件上传gitee

    • 下载安装git

    • 这是gitee

      • 【设置】,【安全设置】,【SSH公钥】,添加公钥,直接参考【怎样生成公钥】即可
      • 新建一个私有仓库
    • 文件上传

      • 选择要上传的本地文件,右键选择【Git Bash Here】

      • 依次实现以下步骤

        1
        2
        3
        4
        5
        初始化git仓库:git init
        链接远程仓库:git remote add origin "ssh地址"
        添加所有文件: git add --all 或者git add .
        添加注释: git commit -m "yours annotation"
        上传文件到master分支:git push -u origin master

        切记切记,上传只推push不拉pull,防止冲突

  • Electerm

    桌面终端模拟软件(嗐挺好看(?

    • 下载安装electerm
    • 连接服务器:右侧【New ssh】,Host填ip地址,Username填root,Password填服务器密码。【Test connection】成功后点击【Save and connect】。
  • 文件上传服务器(以下过程全部在electerm中操作

    Linux常用命令行:

    1
    2
    3
    4
    5
    6
    7
    8
    ls //显示目录
    cd xxx //进入指定目录
    cd .. //返回到上一级目录
    rm -rf xxx //删除指定文件
    mkdir xxx //创建一个新的目录
    touch xxx //新建文件
    cat xxx //显示文件内容
    vim xxx //文本编辑器
    • 创建文件夹:根目录下创建appSys文件夹,appSys中创建proSys文件夹,用于存放后端文件

    • 进入proSys文件夹,克隆git库

      1
      git clone "ssh地址"

      后续更新时不需要clone,直接把远程仓库的文件拉下来即可

      1
      把远程仓库的文件拉下来:git pull
  • 创建虚拟环境

    • 退回至appSys目录下

    • 安装virtualenv

      1
      pip install virtualenv
    • 创建虚拟环境,命名为proVenv

      1
      virtualenv proVenv
    • 激活虚拟环境

      1
      source proVenv/bin/activate
  • 下载安装依赖

    1
    pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple
  • 运行测试

    1
    python3 app.py runserver -p5000 -h0.0.0.0

    尝试访问服务器外网ip:5000/test,若显示字符串,则后端文件上传成功

    ctrl+c结束运行

    • 如果遇到问题,例如上一次非正常关闭,可尝试如下操作(建议百度

      1
      2
      lsof -i:5000
      kill -9 xxxxx
  • screen窗口命令

    所有窗口都完全独立运行其程序。当窗口当前不可见时,甚至当整个屏幕会话与用户终端分离时,程序仍继续运行。就很好玩(?

    大意就是,可以在主窗口之外,新开一个窗口用来跑项目

    • 安装screen

      1
      yum install -y screen
    • 列出当前所有的session

      1
      screen -ls
    • 创建一个新的窗口

      1
      screen -S xxx
    • 重新连接窗口

      1
      screen -r xxx
    • 退出当前窗口

      • ctrl+a+d退出

      • 退出方法二

        1
        screen -d
      • 结束窗口

        1
        exit
  • uWSGI安装配置

    那么在此之前,请新建一个窗口并进入,然后激活虚拟环境

    • 下载安装uWSGI

      1
      pip install uwsgi
    • 配置uWSGI文档

      俺回到了proSys里的后端文件目录下

      • 新建uwsgi.ini文件

        1
        vim uwsgi.ini
      • 配置文件(具体含义百度吧(乐

        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        [uwsgi]
        #socket = 0.0.0.0:5000
        http = 0.0.0.0:5000
        wsgi-file = app.py #python项目启动程序文件
        callable = app #python程序内用于启动的application变量名
        processes = 4 #处理器数
        threads = 3 #线程数
        buffer-size = 32768 #设置uwsgi包解析的内部缓存区大小。默认4k
        master=true
        pidfile=uwsgi.pid
    • 【shift+;】进入命令行模式,【wq】保存并退出文本编辑器

    • 启动uWSGI

      1
      uwsgi --ini uwsgi.ini

后续理论上还要去学院服务器部署,那就到时候再说



  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2021-2022 Gghost
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信