Learning-管廊项目部署

Huang Zhiwei

管廊项目部署

创建者: 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
2
3
4
https://www.jetbrains.com/zh-cn/idea/ //idea
https://www.jetbrains.com/zh-cn/pycharm/ //pycharm
https://www.jetbrains.com/zh-cn/webstorm/ //webstorm
https://www.jetbrains.com/zh-cn/datagrip/ //datagrip
  • 软解解压和破解,破解就请自行想办法了,完成后”下载“路径应当形如:

https://hzw-blogimage.oss-cn-shanghai.aliyuncs.com/personalInfo/20230830114106.png

Mysql原生安装

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

https://hzw-blogimage.oss-cn-shanghai.aliyuncs.com/personalInfo/20230830113550.png

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

https://hzw-blogimage.oss-cn-shanghai.aliyuncs.com/personalInfo/20230830115017.png

  • 接下来配置数据库用户组权限,分为两部分,一部分是数据库数据路径权限,另一部分是数据库根目录路径权限。
1
2
3
4
5
//创建数据目录并赋予权限
sudo mkdir -p /data/mysql
sudo chown mysql:mysql -R /data/mysql
//赋予根目录路径的权限
sudo chown -R mysql:mysql /usr/local/mysql-8.0.33/
  • 修改配置文件 my.cnf,该文件位置在 /etc/my.cnf,如果没有就需要创建一个,同时考虑到vim比较用,可以赋予权限用文本编辑器打开。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//创建配置文件
sudo touch /etc/my.cnf
//赋予权限
sudo chmod 777 /etc/my.cnf
//用文本编辑器打开后将一下内容修改后贴进去, 其中最后一个是为了向内网暴露做准备的
[mysqld]
basedir=/usr/local/mysql-8.0.33
datadir=/data/mysql
port=3306
socket=/tmp/mysql.sock
character_set_server=utf8
lower_case_table_names=1
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
[mysql]
default-character-set = utf8
bind-address=0.0.0.0

https://hzw-blogimage.oss-cn-shanghai.aliyuncs.com/personalInfo/20230830121114.png

  • 初始化Mysql,初始化后会出现一个密码,必须要记住。如果忘记了这个密码可以用cat /data/mysql/mysql.err 查看。
1
2
3
//初始化
cd /usr/local/mysql-8.0.33/bin/
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql-8.0.33/ --datadir=/data/mysql/ --user=mysql --initialize
  • 将Mysql的启动注册成系统服务,然后配置环境变量。
1
2
3
4
5
6
7
8
9
10
//将启动脚本复制到系统启动服务里
cd /usr/local/mysql-8.0.33/support-files
sudo cp mysql.server /etc/init.d/mysql
// 为profile 赋予权限
sudo chmod 777 /etc/profile
// 将下面两行添加到profile里
export MYSQL_HOME="/usr/local/mysql-8.0.11"
export PATH="$PATH:$MYSQL_HOME/bin"
// 使环境变量生效
source /etc/profile

https://hzw-blogimage.oss-cn-shanghai.aliyuncs.com/personalInfo/20230830121407.png

  • 启动服务:service mysql start ,登录Mysql,mysql -u root -p ,输入刚才保存的密码即可,如果不可以。首次登录后会叫你重置一下密码
1
2
3
mysql> use mysql;
mysql> ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘你的密码’;
mysql> flush privileges;
  • (可选)向内网暴露Mysql服务,允许使用某个用户名及密码从任何主机连接到该 mysql 服务,必须注意该步骤前检验/etc/my.cnfbind-address=0.0.0.0
1
2
3
mysql> use mysql;
mysql> update user set host=’%’ where user = ‘root’;
mysql> flush privileges;
  • 退出后重启服务
1
2
3
mysql> exit

service mysql restart
  • 从外部,例如windows使用Navicat更方便地查看数据库,例如我们可以将dfb数据直接导入数据库形成具有初始内容的数据表,至此数据库配置结束。

https://hzw-blogimage.oss-cn-shanghai.aliyuncs.com/personalInfo/20230830122557.png

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 看到这个小方块就可以了。

https://hzw-blogimage.oss-cn-shanghai.aliyuncs.com/personalInfo/20230830130555.png

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
2
cd xxxx/nginx-1.20.2
./configure --add-module=flv模块的绝对路径,如/data/Deployment/PipeGallery/nginx-http-flv/nginx-http-flv-module-master
  • 编译和安装,安装完毕后会在/usr/local/ 创建一个nginx目录
1
2
make
make install
  • 添加软链接
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即可,修改成部署的根目录。

https://hzw-blogimage.oss-cn-shanghai.aliyuncs.com/personalInfo/20230830131857.png

1
2
3
4
cd xxxx/PipeGallery
sudo cp nginx.conf /usr/local/nginx/conf/nginx.conf
//赋予权限
sudo chmod 777 /usr/local/nginx/conf/nginx.conf
  • 最后重启nginx,验证一下 nginx -s reload

前端项目配置

前端项目使用Webstorm打开,打开后即可在右上角看到一个dev和一个绿色三角。

  • 前端项目需要修改两个地方的配置,一个是.env.development里的三个地址,端口号不用变,只要将它改成当前机器的地址即可;

https://hzw-blogimage.oss-cn-shanghai.aliyuncs.com/personalInfo/20230830133153.png

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

https://hzw-blogimage.oss-cn-shanghai.aliyuncs.com/personalInfo/20230830133400.png

  • 前端项目的启动可以在webstorm中启动,也可以在前端项目的路径下使用npm run dev启动

后端项目配置

后端项目使用Springboot完成,必须使用Idea完整版打开,community版是不可以的。由于idea需要的插件比较多,而一开始都是没有的,而且最新的idea可能自带的插件啥的有冲突,maven镜像配置也比较麻烦,我们只能给出有限个可能问题的解决。

  • 首先在maven 的runner中把这个勾选上。

https://hzw-blogimage.oss-cn-shanghai.aliyuncs.com/personalInfo/20230830134117.png

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

https://hzw-blogimage.oss-cn-shanghai.aliyuncs.com/personalInfo/20230830134306.png

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

https://hzw-blogimage.oss-cn-shanghai.aliyuncs.com/personalInfo/20230830134419.png

  • 然后修改basepath

https://hzw-blogimage.oss-cn-shanghai.aliyuncs.com/personalInfo/20230830134514.png

  • 然后点击运行,如果没有冲突的话项目就正常启动了,如果有冲突,请再联系。

算法配置

  • 算法配置主要是环境配置和路径配置,环境配置方面,我们提供了一个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 进行许可。
 评论