本文详细介绍了如何在Ubuntu20.04下安装wvp平台,平台完整安装包括Mysql、redis、ZLMediaKit和WVP四部分,每部分详细的安装步骤和常见的报错,以及常见报错的解决办法。
简介
WVP(Web Video Platform) 是基于GB/T28181-2016标准实现的网络视频平台,支持海康、大华、宇视、华为、天地伟业等支持GB/T28181-2016协议的IPC、NVR、DVR接入。支持国标联网,支持Rtsp/Rtmp等视频流转发到国标平台。
一、环境及基本依赖库安装
1、操作系统版本信息
此次我使用的是Ubunttu 22.04.5的操作系统,其它ubuntu版本操作也基本一样。2、基础依赖库安装
切换到root用户,输入su -i,然后输入操作系统的登陆密码。登陆后分别输入下列命令:
sudo apt install gcc g++ cmake make git curl p7zip-full vim pkg-config autoconf automake -y
安装完成后,会弹出服务重启的对话框,把未选中的服务使用空格键选中,然后选择OK重启服务。
sudo apt install build-essential
输入上面命令后,会提示是否继续,输入y继续安装
apt-get install net-tools
这是网卡查看工具,不安装无法查看当前服务器的IP地址。
sudo apt-get install -y openjdk-21-jre git maven
注意:此处一定要安装 jkd-21版本,wvp依赖jdk21版本,低于21版本的后续安装会报错,不过报错也没关系,再安装21的版本,然后从低版本切换到21版本就行。为了避免后续麻烦,这里直接安装21版本
3、关闭防火墙
# 查看防火墙状态
service ufw status
当前防火墙是启用状态,需要关闭
# 关闭防火墙
service ufw stop
上面可以看出防火墙已经关闭。
4、安装并启动Redis
# 更新
sudo apt update
# 安装Redis服务
sudo apt install redis-server
安装过程中会提示是否继续,输入 y 继续安装
#防火墙允许 6379 端口放行
sudo /sbin/iptables -I INPUT -p tcp --dport 6379 -j ACCEPT
可以看到6379端口已经放开
# 启动Redis服务
sudo systemctl start redis-server
# 测试Redis是否启动成功
redis-cli // 进入Redis终端
ping // 在终端输入ping,若返回PONG说明启动成功
# 注意,这里redis没加密码。在之后其他软件配置Redis信息时就不需要填写密码。
5、安装jre
# 执行如下指令查看是否正常
sudo apt install default-jre
#查看jre版本
sudo java -version
6、安装maven
#更新并安装maven
sudo apt update
sudo apt install maven
(1)修改maven的配置文件,将下面6行代码加入到settings.xml配置文件中,具体代码行位置如下图所示。
<mirror>
<id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf>
</mirror>
#执行以下命令
sudo vim /usr/share/maven/conf/settings.xml
打开配置文件后,找到位置后,输入字母 i 插入上面6行代码保存。
按esc后,输入冒号 :wq 回车保存。
(2)查看mvn安装状态
7、安装Nodejs 和 npm
#复制这两条命令,直接执行
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - &&\
sudo apt-get install -y nodejs
等待安装完成即可,安装完成可查看安装状态
#查看node的安装状态
node -v
#查看npm的安装状态
npm -v
8、Wvp项目下载
#从gitee地址下载
git clone https://gitee.com/pan648540858/wvp-GB28181-pro.git
注意:下载会直接将下载的文件放在当前目录,所以提前规划好软件的存放路径,可以直接先进入文件放置的目录,再执行命令下载,也可以先下载,后面再移动到相应目录,我这里是直接先进入用户目录再下载。
上面可以看到,/home/megaium目录里已经有了下载的wvp程序了
9、安装Mysql,并创建wvp数据库
(1)安装Mysql
#更新
sudo apt-get update
# 安装mysql
sudo apt-get install mysql-server
# 进入mysql终端
sudo mysql
# 将密码设置为123456,当然可以设置自己想要的密码,但是得记住,后面会用到
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
# 退出mysql终端
quit
# 配置(最后一个选择y,其余选择n即可。如最后一张图最下方一个输入y即可)
sudo mysql_secure_installation
(2)、创建并导入wvp数据库,具体细节如下图
# 连接mysql
mysql -u root -p
# 创建wvp数据库
CREATE DATABASE wvp;
# 查看数据库
show databases;
# 使用wvp数据库
use wvp;
# 执行数据库脚本(下面初始化-mysql-2.7.4.sql、更新-mysql-2.7.4.sql为wvp源码下sql目录所在)
source /home/megaium/wvp-GB28181-pro/数据库/2.7.4/初始化-mysql-2.7.4.sql;
source /home/megaium/wvp-GB28181-pro/数据库/2.7.4/更新-mysql-2.7.4.sql;
# 刷新授权(前一步update脚本会有报错,但似乎对后续使用没什么影响,可能数据库脚本没有同时更新)
flush privileges;
# 查看数据库内的表
show tables;
# 退出数据库
quit
二、ZLMediaKit项目编译
1、下载ZLMediaKit源码(具体如图)
如果不使用github下载源码,必须使用git克隆ZLMediaKit代码,因为ZLMediaKit依赖于第三方代码,zip包不会下载第三方依赖源码。
# 克隆ZLMediaKit源码
git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit
cd ZLMediaKit
# 千万不要忘记执行这句命令
git submodule update --init
注意:下载会直接将下载的文件放在当前目录,所以提前规划好软件的存放路径,可以直接先进入文件放置的目录,再执行命令下载,也可以先下载,后面再移动到相应目录,我这里是直接先进入用户目录再下载。
(2)、安装相关依赖库
sudo apt-get install build-essential
sudo apt-get install cmake
sudo apt-get install openssl
sudo apt-get install libssl-dev
sudo apt-get install libsdl-dev
sudo apt-get install libavcodec-dev
sudo apt-get install libavutil-dev
sudo apt-get install ffmpeg
(3)、编译ZLMediaKit
# 进入ZLMediaKit源码文目录
cd ZLMediaKit
# 创建进入build文件夹
mkdir build
cd build
# 编译
cmake ..
make -j4
编译完成后,生成如下图红框中的文件,则为编译成功。
三、wvp编译
进入wvp文件目录
(1)、编译前端页面
#进入前端页面目录
cd ./web
# 清除npm缓存
npm cache clean --force
# 取消ssl验证:
npm config set strict-ssl false
# 换源
npm config set registry http://registry.cnpmjs.org
npm --registry=https://registry.npm.taobao.org install
npm run build (运行此处时会报错,是因为编辑命令缺失了)
此处报错了,是因为编辑命令缺失,运行 npm run 查看完整的命令
运行 npm run build:prod
(2)、打包后台项目
# 进入wvp目录,并执行如下命令
mvn install
编辑过程如上图报错了,原因是项目pom.xml编译插件配置了release=21,要求使用 Java21 编译器,当前仅安装了 OpenJDK 11,javac编译器版本 11 不支持 21 语法标准,编译直接失败。按如下方法解决:
#更新
apt update
apt install openjdk-21-jdk -y
# 注册java运行程序
update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-21-openjdk-amd64/bin/java 2
# 注册javac编译器(必须注册)
update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-21-openjdk-amd64/bin/javac 2
#切换默认java环境
update-alternatives --config java
update-alternatives --config javac
以上切换完成后,重新执行 mvn install 编译
# 进入wvp目录,并执行如下命令
mvn install
编辑完成后,如上图提示 BUILD SUCCESS 则表示编译成功。编译成功后,会在target目录下生成.jar的文件。
四、WVP+ZLM配置及运行
1、打开/home/megaium/wvp-GB28181-pro/src/main/resources/application-dev.yml文件,根据前面mysql、redis设置进行修改。
注意:记录如下的id、secret、http-port端口,后面需要配置到zlmediakit中
按esc,输入 :wq 保存退出
2、打开/home/megaium/ZLMediaKit/release/linux/Debug/config.ini 文件,进行修改
[general] 模块下 mediaServerId 改为wvp中记录的id
[http]模块下 port端口改为wvp中记录的port端口
[api]模块下的 secret,与wvp配置中的secret保持一致
3、启动运行
(1)启动ZLMediaKit:进入/home/megaium/ZLMediaKit/release/linux/Debug目录,直接运行MediaServer即可
cd /home/megaium/ZLMediaKit/release/linux/Debug
./MediaServer
(2)启动wvp:进入/home/megaium/wvp-GB28181-pro/src/main/resources/目录,直接运行:
cd /home/megaium/wvp-GB28181-pro/src/main/resources/
java -jar /home/megaium/wvp-GB28181-pro/target/wvp-pro-2.7.4-07111328.jar --spring.config.location=/home/megaium/wvp-GB28181-pro/src/main/resources/application-dev.yml
注意:java -jar 后面的路径和 location后面的路径,为实际.jar包的路径和wvp配置文件的路径。
(3)验证登陆
用户名:admin 密码:admin 验证登陆成功