Learning-管廊项目部署
管廊项目部署
创建者: Zhiwei Huang
创建时间: August 30, 2023 11:06 AM
本文档记录管廊项目如何完整部署的流程,是交付给管廊公司私有化部署的教程,也是为后续维保做准备。
项目部署包括Linux下的前期准备、Mysql原生安装、Redis安装、Nginx配置、前端项目配置、后端项目配置、算法项目配置
前期准备
- 安装Linux Ubuntu18.04或者Ubuntu20.04
- 安装显卡驱动,包括Cuda、cudnn等
- 下载Jetbrain 全家桶,为了风格统一和代码审查的方便,请下载Pycharm Professional、Intelli Idea(注意Idea不可以是Community版)、Webstorm、DataGrip,可以使用正版或使用任意方法破解。下面是这些软件的下载链接:
1 | https://www.jetbrains.com/zh-cn/idea/ //idea |
- 软解解压和破解,破解就请自行想办法了,完成后”下载“路径应当形如:

Mysql原生安装
项目使用Linux下的Mysql原生安装,本次未使用Docker安装,是因为担心Docker容器允许过程中万一被终止会导致项目运行错误,原生安装可以将服务注册为service使服务更稳定。本节内容参考:Linux 下 MySQL 8.0版本的安装配置部署 ,如有在本节看不懂的内容可以查阅该链接对照一下。
- 前往Mysql下载页,下载一个8.0开头的版本。本次服务器部署的版本是8.0.33,链接如下:https://downloads.mysql.com/archives/community/

- 在”下载“中解压,Ubuntu界面下就是”提取到此处“,然后将文件移动到”/usr/local“目录下,并重命名,指令如下:
1 | cd /home/ubuntu/Downloads |
- 检查用户组,
sudo groups mysql正常没安装的机器上应当显示groups: mysql: No such user - 增加用户组:
sudo groupadd mysql在用户组下增加用户sudo useradd -r -g mysql mysql,没有报错的情况下用户组下的用户就添加完毕了,这时输入sudo groups mysql,应当出现mysql : mysql,如图:

- 接下来配置数据库用户组权限,分为两部分,一部分是数据库数据路径权限,另一部分是数据库根目录路径权限。
1 | //创建数据目录并赋予权限 |
- 修改配置文件 my.cnf,该文件位置在
/etc/my.cnf,如果没有就需要创建一个,同时考虑到vim比较用,可以赋予权限用文本编辑器打开。
1 | //创建配置文件 |

- 初始化Mysql,初始化后会出现一个密码,必须要记住。如果忘记了这个密码可以用
cat /data/mysql/mysql.err查看。
1 | //初始化 |
- 将Mysql的启动注册成系统服务,然后配置环境变量。
1 | //将启动脚本复制到系统启动服务里 |

- 启动服务:
service mysql start,登录Mysql,mysql -u root -p,输入刚才保存的密码即可,如果不可以。首次登录后会叫你重置一下密码
1 | mysql> use mysql; |
- (可选)向内网暴露Mysql服务,允许使用某个用户名及密码从任何主机连接到该 mysql 服务,必须注意该步骤前检验
/etc/my.cnf中bind-address=0.0.0.0:
1 | mysql> use mysql; |
- 退出后重启服务
1 | mysql> exit |
- 从外部,例如windows使用Navicat更方便地查看数据库,例如我们可以将dfb数据直接导入数据库形成具有初始内容的数据表,至此数据库配置结束。

Redis安装
Redis安装比Mysql简单多了,Redis没有版本要求,本节内容参考Linux安装部署Redis(超级详细) - 长沙大鹏 - 博客园 (cnblogs.com)
- 将Redis解压一下,有图形界面就提取到此处即可,没有图形界面就命令行解压,
tar -zvxf redis-7.2.0.tar.gz - 移动redis目录,将redis目录放置到 /usr/local/redis目录,
sudo mv /root/redis-7.2.0 /usr/local/redis - make一下,进入/usr/local/redis,
cd /usr/local/redis,然后直接输入make即可;make过程中会有一堆checking和config,等待它结束即可; - 安装,
PREFIX关键字的作用是编译的时候用于指定程序存放的路径,如我们现在就是指定了redis必须存放在/usr/local/redis目录。假设不添加该关键字Linux会将可执行文件存放在/usr/local/bin目录,库文件会存放在/usr/local/lib目录。配置文件会存放在/usr/local/etc目录。其他的资源文件会存放在usr/local/share目录。这里指定号目录也方便后续的卸载,后续直接rm -rf /usr/local/redis 即可删除redis。
1 | make PREFIX=/usr/local/redis install |
- 启动redis,
./bin/redis-server& ./redis.conf看到这个小方块就可以了。

Nginx配置
Nginx需要集成一下FLV模块,这两个东西已经提供了。进入nginx-http-flv,里面有nginx-1.20.2和nginx-http-flv-module-master。本节内容参考nginx 搭建http-flv(rtmp)流媒体_nginx可以http访问rtmp_像风一样的男人@的博客-CSDN博客 ,如果在本节有看不懂的可以看这篇博客对照。
- 进入nginx-1.20.2,将flv模块添加进去
1 | cd xxxx/nginx-1.20.2 |
- 编译和安装,安装完毕后会在
/usr/local/创建一个nginx目录
1 | make |
- 添加软链接
1 | ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/ |
- 启动验证一下,输入
nginx即可 - 修改配置,将我们提供的conf文件复制一份到
/usr/local/nginx/conf/nginx.conf如果无法复制就使用命令行:
如图所示,红色框内的地址都要改动,server_name需要对整个配置文件做替换,替换成当前机器的ip,location则只需要修改第一个 listen 8070的root即可,修改成部署的根目录。

1 | cd xxxx/PipeGallery |
- 最后重启nginx,验证一下
nginx -s reload
前端项目配置
前端项目使用Webstorm打开,打开后即可在右上角看到一个dev和一个绿色三角。
- 前端项目需要修改两个地方的配置,一个是.env.development里的三个地址,端口号不用变,只要将它改成当前机器的地址即可;

- 另一个是merge-header.vue中的href下的路径,需要改成当前机器的路径

- 前端项目的启动可以在webstorm中启动,也可以在前端项目的路径下使用
npm run dev启动
后端项目配置
后端项目使用Springboot完成,必须使用Idea完整版打开,community版是不可以的。由于idea需要的插件比较多,而一开始都是没有的,而且最新的idea可能自带的插件啥的有冲突,maven镜像配置也比较麻烦,我们只能给出有限个可能问题的解决。
- 首先在maven 的runner中把这个勾选上。

- 然后修改这些地址,必须非常准确地修改

- 然后修改上方数据库的配置

- 然后修改basepath

- 然后点击运行,如果没有冲突的话项目就正常启动了,如果有冲突,请再联系。
算法配置
算法配置主要是环境配置和路径配置,环境配置方面,我们提供了一个conda导出的环境包
pipe.tar.gz,使用如下指令即可导入环境并激活。1
2
3
4
5
6# 在目标计算机的conda环境路径下(也可以不是)创建一个文件夹,将打包好的安装包解压进去
cd /home/ubuntu/anaconda3/envs/
mkdir -p my_env
tar -xzf xxxx/my_env.tar.gz -C my_env
# 激活环境
source my_env/bin/activate如果想节省空间使用已有的环境,就需要使用pycharm检验一下环境,也就是有没有飘红。比较重要的几个包是:opencv-python==4.5.5,torch==1.6。如果环境配置存在问题,可以再和我们联系。
我们在后端配置时就建议过,本地验证部署建议使用cvrgb_template0803.py。
- 标题: Learning-管廊项目部署
- 作者: Huang Zhiwei
- 创建于: 2023-08-30 23:28:00
- 更新于: 2023-09-02 23:41:10
- 链接: https://huangzhw0221.github.io/2023/08/30/Learning-管廊项目部署/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。