当前位置: 首页 > news >正文

[运维] wvp 28181安装部署全流程(ubuntu2204)

部署wvp

系统环境

系统版本ubuntu2204

安装相关工具

sudo apt update
## 编译工具
sudo apt install git openjdk-11-jdk tar vim cmake gcc g++ libsrtp2-dev libssl-dev
## ffmepg
sudo apt install ffmpeg

编译zlm

编译zlm

git clone https://gitee.com/xia-chu/ZLMediaKit.gitcd ZLMediaKit
git submodule update --init --recursive
mkdir -p build release/linux/Release/
cd build 
cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_WEBRTC=true -DENABLE_TESTS=false ..
cmake --build . --target MediaServer

搭建wvp开发环境

安装maven

官网下载地址

wget https://dlcdn.apache.org/maven/maven-3/3.9.4/binaries/apache-maven-3.9.4-bin.tar.gzmkdir apptar xf apache-maven-3.9.4-bin.tar.gzmv apache-maven-3.9.4 app/mavenecho "export PATH=~/app/maven/bin:\$PATH" >> ~/.bashrc
## 环境变量生效
source ~/.bashrc

安装nodejs

官网下载地址

wget https://nodejs.org/dist/v16.19.0/node-v16.19.0-linux-x64.tar.gz
tar xf node-v16.19.0-linux-x64.tar.gz
mv node-v16.19.0-linux-x64 app/node
echo "export PATH=~/app/node/bin:\$PATH" >> ~/.bashrc
## 环境变量生效
source ~/.bashrc

编译wvp

签出代码

git clone https://gitee.com/pan648540858/wvp-GB28181-pro.git

编译前端

cd wvp-GB28181-pro/web_src
# 下载依赖
npm install --registry=https://registry.npmmirror.com
# 编译
npm run build

编译后端

cd ..
mvn clean package -DskipTests

部署docker

curl -sfL https://get.rainbond.com/install_docker | bash

部署docker-compose

sudo curl -L https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-linux-x86_64 -o /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-compose

部署数据库和redis

  1. 创建安装目录
## 创建储存目录
mkdir -p /home/media/mysqldata /home/media/redisdata
  1. 创建yml文件
cd /home/media/
vim video.yml

将以下内容复制到vim编辑器中

version: "3.8"
services:redis:image: redis:6.2-alpinerestart: alwaysenvironment:TZ: Asia/Shanghaiports:- 6379:6379volumes:- /opt/video/redisdata/data:/data- /opt/video/redisdata/log:/logscommand: redis-server --port 6379 --requirepass 12345678  --appendonly yesmysql:image: mysql:8restart: alwayscommand: ["--character-set-server=utf8mb4","--collation-server=utf8mb4_unicode_ci","--default-time-zone=+8:00",]ports:- 3306:3306environment:TZ: Asia/ShanghaiMYSQL_ROOT_PASSWORD: 12345678SQL_MODE: "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"volumes:- /opt/video/mysqldata/mysql:/var/lib/mysql:rw 
  1. 启动数据库和redis
# 将镜像pull下来
docker pull redis:6.2-alpine
docker pull mysql:8
## 启动
docker-compose -f video.yml -p wvp up -d

部署zlm

  1. 创建安装目录
mkdir -p /home/media/zlm
  1. 复制zlm启动文件到安装目录
# 进入zlm项目目录
cd ~/ZLMediaKit
cp -r release/linux/Release/* /home/media/zlm
  1. 创建开机启动脚本
vim /etc/systemd/system/zlm.service

将以下内容复制到vim编辑器

[Unit]
Description=ZLMediaKit
[Service]
Environment="PATH=/usr/local/bin:/bin:/sbin:/usr/bin:/usr/sbin"
ExecStart=/home/media/zlm/MediaServer -c /home/media/zlm/config.ini
StandardOutput=null
[Install]
WantedBy=multi-user.target
  1. 启动zlm
# 设置开机启动
systemctl enable zlm
# 启动zlm
systemctl start zlm
  1. 其他
# 重启zlm
systemctl restart zlm
# 停止zlm
systemctl stop zlm
# 查看启动状态 
systemctl status zlm

部署wvp

  1. 导入sql文件
## 进入wvp项目
cd ~/wvp-GB28181-pro/
## 复制mysql.sql、update.sql文件到mysql容器
docker cp sql media-mysql-1:/tmp
## 进入mysql容器
docker exec -it media-mysql-1 bash
## 登录数据库
mysql -uroot -p12345678
## 创建wvp数据库
CREATE DATABASE `wvp` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
  1. 创建安装目录
mkdir -p /home/media/wvp
  1. 复制jar文件和配置到安装目录
cd ~/wvp-GB28181-pro/
# 复制java包安装目录
cp target/wvp-pro-2.6.6-xxxxx.jar /home/media/wvp/wvp-pro.jar
# 复制配置文件安装目录
cp src/main/resources/all-application.yml /home/media/wvp/application.yml
  1. 创建开机启动文件
vim /etc/systemd/system/wvp.service

将以下内容复制到vim编辑器

[Unit]
Description=wvp
[Service]
Environment="PATH=/usr/local/bin:/bin:/sbin:/usr/bin:/usr/sbin"
ExecStart=/usr/bin/java -jar /home/media/wvp/wvp-pro.jar --spring.config.location=/home/media/wvp/application.yml
StandardOutput=null
[Install]
WantedBy=multi-user.target
  1. 启动wvp
# 设置开机启动
systemctl enable wvp
# 启动wvp
systemctl start wvp
  1. 其他
# 重启wvp
systemctl restart wvp
# 停止wvp
systemctl stop wvp
# 查看启动状态 
systemctl status wvp

wvp-pro-assist 部署

  1. 编译
git clone https://gitee.com/pan648540858/wvp-pro-assist.git
cd wvp-pro-assist
## assist在编译前需要把配置文件更改好
mvn clean package -DskipTests
  1. 安装
mkdir /home/media/assist
cp target/wvp-pro-assist-2.6.8-08261304.jar /home/media/assist/wvp-pro-assist.jar
  1. 创建开机启动文件
vim /etc/systemd/system/assist.service

将以下内容复制到vim编辑器

[Unit]
Description=assist
[Service]
Environment="PATH=/usr/local/bin:/bin:/sbin:/usr/bin:/usr/sbin"
ExecStart=/usr/bin/java -jar /home/media/assist/wvp-pro-assist.jar 
StandardOutput=null
[Install]
WantedBy=multi-user.target
  1. 启动wvp
# 设置开机启动
systemctl enable assist
# 启动wvp
systemctl start assist

登录

登录地址

http://xxx.xxx.xxx.xxx:18080

用户名/密码:admin/admin

需要远程协助可私信我

相关文章:

[运维] wvp 28181安装部署全流程(ubuntu2204)

部署wvp 系统环境 系统版本:ubuntu2204 安装相关工具 sudo apt update ## 编译工具 sudo apt install git openjdk-11-jdk tar vim cmake gcc g libsrtp2-dev libssl-dev ## ffmepg sudo apt install ffmpeg编译zlm 编译zlm git clone https://gitee.com/xia-…...

vue实现富文本

效果图展示 一、安装依赖 npm install vue-quill-editor --save二、具体使用 html <template><!-- 富文本 --><quill-editorref"myQuillEditor"v-model"content":options"editorOption"blur"onEditorBlur($event)"…...

uniapp 开发微信小程序使用echart的dataZoom属性缩放功能不生效!bug记录!

在本项目中使用的是这个echart库 在项目中添加了dataZoom配置项但是不生效&#xff0c;突然想到微信小程序代码大小的限制&#xff0c;之前的echarts.js是定制的&#xff0c;有可能没有加dataZoom组件。故重新定制echarts.js。之前用的echarts版本是5.0.0&#xff0c;这次也是…...

用户端Web自动化测试_L4

目录&#xff1a; selenium多浏览器处理执行 javascript 脚本headless无头浏览器使用capability配置参数解析企业微信实战cypress测试框架介绍Playwright测试框架介绍 1.selenium多浏览器处理 多浏览器测试背景 用户使用的浏览器(firefox,chrome,IE 等)web 应用应该能在任何…...

CAPL - Panel和TestModule结合实现测试项可选

目录 一、定义脚本编号和脚本组编号 1、测试组定义 2、测试脚本编号定义...

机器学习,过拟合与欠拟合,正则化与交叉验证

目录 机器学习 过拟合与欠拟合 正则化与交叉验证 正则化 交叉验证 机器学习 的目的是使学到的模型不仅对已知数据而且对未知数据都能有很好的预测能力。 不同的机器学习方法会给出不同的模型。当损失函数给定时&#xff0c;基于损失函数的模型的训练误差&#xff08;tra…...

gradio使用transformer模块demo介绍1:Text Natural Language Processing

文章目录 文本生成 Text Generation自动完成 Autocomplete情感分析 Sentiment Analysis命名实体识别 Name Entity Recognition NER多语种翻译文本生成 Text Generation import gradio as gr from transformers import pipelinegenerator = pipeline(text-generation, model=&l…...

算法通关村——数论经典问题解析

1. 辗转相除法 主要目的是获取两个数里面的最大公约数。 public int gcd(int a, int b) {int k 0;do {k a % b;a b;b k;} while (k ! 0);return a;}2. 素数和合数 素数的要求是必须大于等于2&#xff0c;并且只能被1和它本身整除。 判断的方法比较简单&#xff0c;就是从…...

代码随想录算法训练营第四十六天|LeetCode 1143,1035,53

目录 LeetCode 1143.最长公共子序列 动态规划五步曲&#xff1a; 1.确定dp[i][j]的含义 2.找出递推公式 3.初始化dp数组 4.确定遍历顺序 5.打印dp数组 LeetCode 1035.不相交的线 LeetCode 53.最大子序列和&#xff08;动态规划&#xff09; 动态规划五步曲&#xff1a; 1.确定…...

leetcode 541.反转字符串II

⭐️ 题目描述 &#x1f31f; leetcode链接&#xff1a;https://leetcode.cn/problems/reverse-string-ii/ ps&#xff1a; 这道题描述的有点晦涩难懂&#xff0c;意思就是每隔k个反转k个&#xff0c;末尾不够k个时全部反转&#xff0c;开始就不够k个也全部反转。 代码&#…...

MyBatis与Spring整合以及AOP和PageHelper分页插件整合

目录 前言 一、MyBatis与Spring整合的好处以及两者之间的关系 1.好处 2.关系 二、MyBatis和Spring集成 1.导入pom.xml 2.编写配置文件 3.利用mybatis逆向工程生成模型层代码 三、常用注解 四、AOP整合pageHelper分页插件 创建一个切面 测试 前言 MyBatis是一个开源的…...

《认知觉醒》读书笔记之潜意识

模糊--人生是一场消除模糊的比赛。 学习知识&#xff0c;消除认知模糊 掌握的工具越多&#xff0c;认知能力越强&#xff0c;消除模糊的能力就越强。 元认知-----》 如何反观自己。 刻意练习----》 如何精进自己。 运动改造大脑---》 如何激化自己的运动热情。 学习知识的…...

Stable Diffusion 系列教程 | 图生图基础

前段时间有一个风靡全网的真人转漫画风格&#xff0c;受到了大家的喜欢 而在SD里&#xff0c;就可以通过图生图来实现类似的效果 当然图生图还有更好玩的应用&#xff0c;我们一点一点来探索 首先我们来简单进行一下图生图的这一个实践---真人转动漫 1. 图生图基本界面 和…...

cuda编程day001

一、环境&#xff1a; ①、linux cuda-11.3 opecv4.8.0 不知道头文件和库文件路径&#xff0c;用命令查找&#xff1a; # find /usr/local -name cuda.h 2>/dev/null # 查询cuda头文件路径 /usr/local/cuda-11.3/targets/x86_64-linux/include/cuda.h # find /usr/…...

Java 中使用 ES 高级客户端库 RestHighLevelClient 清理百万级规模历史数据

&#x1f389;工作中遇到这样一个需求场景&#xff1a;由于ES数据库中历史数据过多&#xff0c;占用太多的磁盘空间&#xff0c;需要定期地进行清理&#xff0c;在一定程度上可以释放磁盘空间&#xff0c;减轻磁盘空间压力。 &#x1f388;在经过调研之后发现&#xff0c;某服务…...

C++最易读手撸神经网络两隐藏层(任意Nodes每层)梯度下降230821a

// c神经网络手撸20梯度下降22_230820a.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 #include<iostream> #include<vector> #include<iomanip> // setprecision #include<sstream> // getline stof() #include<fstream…...

Leetcode 2235.两整数相加

一、两整数相加 给你两个整数 num1 和 num2&#xff0c;返回这两个整数的和。 示例 1&#xff1a; 输入&#xff1a;num1 12, num2 5 输出&#xff1a;17 解释&#xff1a;num1 是 12&#xff0c;num2 是 5 &#xff0c;它们的和是 12 5 17 &#xff0c;因此返回 17 。示例…...

Postman —— postman实现参数化

什么时候会用到参数化 比如&#xff1a;一个模块要用多组不同数据进行测试 验证业务的正确性 Login模块&#xff1a;正确的用户名&#xff0c;密码 成功&#xff1b;错误的用户名&#xff0c;正确的密码 失败 postman实现参数化 在实际的接口测试中&#xff0c;部分参数每…...

LeetCode--HOT100题(41)

目录 题目描述&#xff1a;102. 二叉树的层序遍历&#xff08;中等&#xff09;题目接口解题思路代码 PS: 题目描述&#xff1a;102. 二叉树的层序遍历&#xff08;中等&#xff09; 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&am…...

微信小程序教学系列(6)

第六章&#xff1a;小程序商业化 第一节&#xff1a;小程序的商业模式 在这一节中&#xff0c;我们将探讨微信小程序的商业模式&#xff0c;让你了解如何将你的小程序变成一个赚钱的机器&#xff01; 1. 广告收入 小程序的商业模式之一是通过广告收入赚钱。你可以在小程序中…...

ubuntu搭建nfs服务centos挂载访问

在Ubuntu上设置NFS服务器 在Ubuntu上&#xff0c;你可以使用apt包管理器来安装NFS服务器。打开终端并运行&#xff1a; sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享&#xff0c;例如/shared&#xff1a; sudo mkdir /shared sud…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止

<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet&#xff1a; https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类&#xff1a;块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

Mobile ALOHA全身模仿学习

一、题目 Mobile ALOHA&#xff1a;通过低成本全身远程操作学习双手移动操作 传统模仿学习&#xff08;Imitation Learning&#xff09;缺点&#xff1a;聚焦与桌面操作&#xff0c;缺乏通用任务所需的移动性和灵活性 本论文优点&#xff1a;&#xff08;1&#xff09;在ALOHA…...

AI病理诊断七剑下天山,医疗未来触手可及

一、病理诊断困局&#xff1a;刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断"&#xff0c;医生需通过显微镜观察组织切片&#xff0c;在细胞迷宫中捕捉癌变信号。某省病理质控报告显示&#xff0c;基层医院误诊率达12%-15%&#xff0c;专家会诊…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化

缓存架构 代码结构 代码详情 功能点&#xff1a; 多级缓存&#xff0c;先查本地缓存&#xff0c;再查Redis&#xff0c;最后才查数据库热点数据重建逻辑使用分布式锁&#xff0c;二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...

Web中间件--tomcat学习

Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机&#xff0c;它可以执行Java字节码。Java虚拟机是Java平台的一部分&#xff0c;Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...

API网关Kong的鉴权与限流:高并发场景下的核心实践

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中&#xff0c;API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关&#xff0c;Kong凭借其插件化架构…...