Wiidede's blog Wiidede's blog
  • 前端
  • Python
  • 算法
  • 生活
  • 其他
  • 分类
  • 标签
  • 归档
  • 关于我
  • 赞赏
  • 我的小站 (opens new window)
GitHub (opens new window)

Wiidede

小的的写前端
  • 前端
  • Python
  • 算法
  • 生活
  • 其他
  • 分类
  • 标签
  • 归档
  • 关于我
  • 赞赏
  • 我的小站 (opens new window)
GitHub (opens new window)
  • 魅蓝 note6 使用体验
  • 写给学姐瞎讲的机器人比赛相关
  • 大三实训 MP3 播放器 硬件
  • 阿里云学习笔记
  • 深度学习笔记
  • git 本地切换帐号
  • 毕业设计部署踩坑笔记
    • 1.nginx直接发布编译好的vue项目
      • 安装nginx
      • 编译vue项目
    • 2.发布flask应用
    • 3.部署阿里云服务器
  • typora+picgo-core+github+compress 压缩后上传 github 图床
  • 其他
wiidede
2021-04-26

毕业设计部署踩坑笔记

# 毕业设计部署踩坑笔记

首先为什么要叫踩坑,主要还是之前从来没有正式的发布过

其次就是最后想要的效果,就是用docker直接在服务器上发布

# 1.nginx直接发布编译好的vue项目

先停掉apache2或其他服务

sudo /etc/init.d/apache2 stop
1

# 安装nginx

sudo apt update
sudo apt install nginx
1
2

nginx 配置 我们使用最简单的配置

sudo vim /etc/nginx/nginx.conf
1

/etc/nginx/nginx.conf

#最简单的配置
worker_processes 1;
events {
    worker_connections  1024;
}
http {
    include       conf/mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;                    #端口
        server_name  localhost;             #主机名
        location / {
            root   html;                    #项目根目录
            index  index.html index.htm;    #起始页
        }
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

/etc/nginx/conf/mime.types

types {
  text/html                             html htm shtml;
  text/css                              css;
  text/xml                              xml rss;
  image/gif                             gif;
  image/jpeg                            jpeg jpg;
  application/x-javascript              js;
  text/plain                            txt;
  text/x-component                      htc;
  text/mathml                           mml;
  image/png                             png;
  image/x-icon                          ico;
  image/x-jng                           jng;
  image/vnd.wap.wbmp                    wbmp;
  application/java-archive              jar war ear;
  application/mac-binhex40              hqx;
  application/pdf                       pdf;
  application/x-cocoa                   cco;
  application/x-java-archive-diff       jardiff;
  application/x-java-jnlp-file          jnlp;
  application/x-makeself                run;
  application/x-perl                    pl pm;
  application/x-pilot                   prc pdb;
  application/x-rar-compressed          rar;
  application/x-redhat-package-manager  rpm;
  application/x-sea                     sea;
  application/x-shockwave-flash         swf;
  application/x-stuffit                 sit;
  application/x-tcl                     tcl tk;
  application/x-x509-ca-cert            der pem crt;
  application/x-xpinstall               xpi;
  application/zip                       zip;
  application/octet-stream              deb;
  application/octet-stream              bin exe dll;
  application/octet-stream              dmg;
  application/octet-stream              eot;
  application/octet-stream              iso img;
  application/octet-stream              msi msp msm;
  audio/mpeg                            mp3;
  audio/x-realaudio                     ra;
  video/mpeg                            mpeg mpg;
  video/quicktime                       mov;
  video/x-flv                           flv;
  video/x-msvideo                       avi;
  video/x-ms-wmv                        wmv;
  video/x-ms-asf                        asx asf;
  video/x-mng                           mng;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48

# 编译vue项目

yarn run bulid
1

修改nginx.conf http server location root 为 项目所在位置 (dist文件夹)

访问localhost,成功

# 2.发布flask应用

这里没有其他项目就不用虚拟环境了

sudo pip3 install gunicorn
gunicorn -w 2 -b 127.0.0.1:5000 waterMeter:app
1
2

# 3.部署阿里云服务器

首先初始化服务器并下载项目

# 初始化
sudo apt update
sudo apt upgrade

# 创建目录

sudo mkdir /app
sudo chmod 777 /app
cd /app

# 安装git
sudo apt install git

# 设置git
git config --global user.name wiidede
git config --global user.email wiixdede@gmail.com


# 克隆前后端仓库
git clone -b dist https://gitee.com/wiidede/water-meter-frontend.git


# 安装tree
sudo apt install tree

# 查看目录
tree -L 2

# .
# ├── water-meter-backend
# │   ├── app
# │   ├── assets
# │   ├── base
# │   ├── main
# │   ├── README.md
# │   ├── utils
# │   ├── waterMeter.py
# │   └── 毕业设计.md
# └── water-meter-frontend
#     ├── dist
#     └── README.md

# 8 directories, 4 files

# 安装nginx
sudo apt install nginx

# 修改配置
cd /etc/nginx/sites-available/
# defalut默认被占用 可以先删除它
sudo vim default

# 添加server配置
# server {
#     listen       80;
#     server_name  localhost;
#     location / {
#         root   /app/water-meter-frontend/dist;
#         index  index.html;
#     }
# }

# 重启
sudo nginx -s reload
# 或者
sudo systemctl reload nginx
sudo systemctl restart nginx

# 后端配置
cd /app/water-meter-backend/

sudo apt install python3-pip
# sudo pip3 install tensorflow==1.15 # python3.8 无法安装 tf1

# 使用虚拟环境
sudo pip3 install virtualenv

# 安装python3.6
sudo apt install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.6
python3.6 -V

virtualenv venv --python=python3.6
source venv/bin/activate

# 虚拟环境(venv)
pip install gunicorn
pip install flask
pip install flask-cors
pip install tensorflow==1.15
pip install scipy
pip install easydict
pip install Pillow
pip install opencv-python
# 安装依赖
sudo apt install libgl1-mesa-glx

# 传输checkpoints
# scp -r file(ubuntu的文件) root(用户名)@xx.xx.xx.xx(公网ip):/home/(目标文件夹)
scp -r -i ssh-key.pem /home/robot/dd_demo/watermeter/WaterMeter/checkpoints root@xx.xx.xx.xx:/app/water-meter-backend
gunicorn -w 2 -b 127.0.0.1:5001 waterMeter:app



# 退出虚拟环境
deactivate



# 修改配置
cd /etc/nginx/sites-available/
# defalut默认被占用 可以先删除它
sudo vim default

# 添加这个服务
# proxy服务器
# server {
#     listen       5000;
#     server_name  xx.xx.xx.xx;

#     location / {
#         proxy_pass   http://127.0.0.1:5001;  #反向代理
#         proxy_cookie_domain 127.0.0.1 xx.xx.xx.xx; #修改cookie里域名

#         # 当用webpack-dev-server等中间件代理接口访问nignx时,此时无浏览器参与,故没有同源限制,下面的跨域配置可不启用
#         # add_header Access-Control-Allow-Origin *;  #当前端只跨域不带cookie时,可为*
#         # add_header Access-Control-Allow-Credentials true;
#     }
# }

cd /usr/lib/systemd/system
vi water-meter-backend.servier


# [Unit]
# After=syslog.target network.target remote-fs.target nss-lookup.target
# [Service]
# #项目所在目录
# user=root
# WorkingDirectory=/app/water-meter-backend/
# #gunicorn启动命令
# #解释1.先是虚拟环境下的gunicorn所在位置
# #2.--bind 绑定端口 承接上篇所以选用0.0.0.0:8001
# #3.xxx表示项目名称
# ExecStart=/app/water-meter-backend/venv/bin/gunicorn -w 2 -b 127.0.0.1:5001 waterMeter:app
# Restart=on-failure
# [Install]
# WantedBy=multi-user.target


# 添加到开机自启动项
sudo systemctl enable water-meter-backend.servier
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
#部署#毕业设计#阿里云
上次更新: 2023/06/01, 12:40:50

← git 本地切换帐号 typora+picgo-core+github+compress 压缩后上传 github 图床→

Theme by Vdoing | Copyright © 2021-2023 Wiidede | Website use MIT License | Article content & logo use CC-BY-SA-4.0 License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式