wvp部署

测试环境

网络: 
	同网段互通无网络上问题

系统:
	Centos7.9
	
摄像头:
	支持rtsp或者rtmp推流且支持国标28181

依赖基础服务

MySQL

1、下载MySQL官方包

## 下载MySQL
[root@localhost ~]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz

2、解压并移动安装包

# 解压 tar -zxvf 待解压目录
[root@localhost ~]# tar -zxvf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz

# 移动 mv 移动目录 移动后的目录
[root@localhost ~]# mv mysql-5.7.21-linux-glibc2.12-x86_64 /usr/local/mysql

3、创建数据目录以及日志存放目录

# 进入MySQL目录
[root@localhost ~]# cd /usr/local/mysql

# 创建data文件夹(也可以根据那个磁盘大而定__df -Th查看)
[root@localhost mysql]# mkdir data

4、创建mysql用户并修改mysql目录组以及权限

# 创建msyql组
[root@localhost mysql]# groupadd mysql

# 创建mysql用户并添加到mysql组中,-r表示mysql是系统级用户,-g是所属组为mysql
[root@localhost mysql]# useradd -r -g mysql mysql

# 修改mysql目录的组以及权限
[root@localhost mysql]# chown mysql:mysql -R ./

5、修改MySQL配置文件

[root@localhost mysql]# vi /etc/my.cnf

[mysqld]
bind-address = 192.168.1.31
port = 3306
user = mysql

# mysql解压目录
basedir = /usr/local/mysql

# 数据存放目录
datadir = /usr/local/mysql/data

# 跳过密码验证
# skip-grant-tables

# socker文件存放目录
socket = /tmp/mysql.sock

# 错误日志
log-error = /usr/local/mysql/data/mysql.error

# mysql进程号
pid-file = /usr/local/mysql/data/mysql.pid

# 日志记录慢查询SQL
slow_query_log = true
slow_query_log_file = /usr/local/mysql/data/mysql_slow_query.log
long_query_time = 1

#记录没有使用index的查询记录
log-queries-not-using-indexes

# 配置mysqlbinlog
server-id = 1
log-bin = mysql-bin
binlog_format = MIXED

# 设置binlog过期时间,过期自动删除
expire-logs-days = 30
max_binlog_size = 128M
log_bin_trust_function_creators = 1

sql_mode = NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER

6、初始化MySQL

# 初始化  --defaults-file为配置文件所在 ,--basedir为解压路径,--datadir为数据保存路径 --user表示MySQL所属用户
[root@localhost mysql]# ./bin/mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --user=mysql --initialize

## 如果执行完初始化没有报错,复制MySQL启动脚本到/etc/init.d/目录便于使用service mysql start启动
[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysql

7、查看密码

## 初始化MySQL是会生产一个临时密码,可以通过查看在my.cnf中配置的log-error的配置文件知晓。Hf=mN0fPujio
[root@localhost mysql]# cat data/mysql.error
root@localhost: !Te<#JGaS8Ot   ##通常最后一行

8、设置systemd启动文件

[root@localhost mysql]# vim /usr/lib/systemd/system/mysql.service

[Unit]
Description=MySQL Server
Documentation=man:mysqld()
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
 
[Install]
WantedBy=multi-user.target
 
[Service]
User=mysql
Group=mysql
PIDFile=/usr/local/mysql/data/mysqld.pid
 
# Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=
 
# Execute pre and post scripts as root
PermissionsStartOnly=true
# Needed to create system tables
#ExecStartPre=/usr/bin/mysqld_pre_systemd
 
# Start main service
ExecStart=/usr/local/mysql/bin/mysqld --daemonize --pid-file=/usr/local/mysql/data/mysqld.pid
#注意这里要加上 --daemonize
# Use this to switch malloc implementation
#EnvironmentFile=-/etc/sysconfig/mysql
 
# Sets open_files_limit
LimitNOFILE = 
Restart=on-failure
RestartPreventExitStatus=
PrivateTmp=false

9、启动MySQL

## 启动
[root@localhost mysql]# systemctl start mysql.service 

## 重启
[root@localhost mysql]# systemctl restart mysql.service 

## 停止
[root@localhost mysql]# systemctl stop mysql.service 

## 开机自启动
[root@localhost mysql]# systemctl enable mysql.service

10、设置环境变量方便使用命令

[root@localhost mysql]# vim /etc/profile
export PATH=$PATH:/usr/local/mysql/bin		## 最后一行添加
[root@localhost mysql]# source /etc/profile

11、登入MySQL并且修改密码

## 登入MySQL
[root@localhost mysql]# mysql -uroot -p
Enter password: 				## mysql.error获取的临时密码

## 修改密码
mysql> SET PASSWORD = PASSWORD('123456');
mysql> ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
mysql> FLUSH PRIVILEGES; 

## 设置MySQL远程登入
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; 
mysql> FLUSH PRIVILEGES; 

12、关闭防火墙或者开放端口

[root@localhost mysql]# systemctl stop firewalld  //关闭防火墙
[root@localhost mysql]# firewall-cmd --zone=public --add-port=3306/tcp --permanent  //开放端口
[root@localhost mysql]# firewall-cmd --reload	  //开放端口后 需要更新一下

Redis

## 下载epel仓库
[root@localhost ~]# yum install epel-release -y

## 下载redis数据库
[root@localhost ~]# yum install redis -y

## 启动redis和设置开启自启动
[root@localhost ~]# systemctl start redis
[root@localhost ~]# systemctl enable redis
## 设置redis 远程连接和密码   (如果都在同一台机器上 不用这一步)
[root@localhost ~]# vim /etc/redis.conf
注释 #bind 127.0.0.1
修改 protected-mode no
修改 daemonize yes
修改 requirepass 123456

## 修改配置文件重启redis
[root@localhost ~]# systemctl restart redis

关闭防火墙或者开放端口

[root@localhost ~]# systemctl stop firewalld  //关闭防火墙
[root@localhost ~]# firewall-cmd --zone=public --add-port=6379/tcp --permanent  //开放端口
[root@localhost ~]# firewall-cmd --reload	  //开放端口后 需要更新一下

服务部署

ZLMediaKit

## 准备环境
[root@localhost ~]# yum install -y epel-release 

## gcc和yasm需要高版本,目前环境是gcc4.8.5 yasm1.2.0
[root@localhost ~]# yum -y install  yasm  gcc* git  openssl-devel  SDL-devel

## 编译安装cmake 3.8.2
[root@localhost ~]# wget https://cmake.org/files/v3.8/cmake-3.8.2.tar.gz
[root@localhost ~]# tar zxvf cmake-3.8.2.tar.gz
[root@localhost ~]# cd cmake-3.8.2
[root@localhost cmake-3.8.2]# ./bootstrap && gmake -j4 && gmake install

## 国内库比较快
[root@localhost cmake-3.8.2]# cd  /usr/local/
[root@localhost local]# git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit
[root@localhost local]# cd ZLMediaKit
[root@localhost ZLMediaKit]# git submodule update --init

## 编译安装
[root@localhost ZLMediaKit]# mkdir build && cmake . && make -j4

## ZLMediaKit服务目录
[root@localhost ZLMediaKit]# cd release/linux/Debug

配置文件

[root@localhost Debug]# vim config.ini

[general]
mediaServerId=ZLM_31 		## 修改ID号和wvp对接
## 软连接
[root@localhost Debug]# ln -s /usr/local/ZLMediaKit/release/linux/Debug/MediaServer /usr/bin/

创建system启动文件

[root@localhost Debug]# vim /usr/lib/systemd/system/ZLMediaKit.service

[Unit]
Description=MediaServer
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=simple
ExecStart=/usr/bin/MediaServer -d
ExecReload=/bin/kill -s HUP $MAINPID
PrivateTmp=true
RestartSec=10
Restart=always
StartLimitInterval=0

[Install]
WantedBy=multi-user.target
## 启动ZLM
[root@localhost Debug]# systemctl daemon-reload 
[root@localhost Debug]# systemctl start ZLMediaKit.service
[root@localhost Debug]# systemctl enable ZLMediaKit.service

## 前台启动
[root@localhost Debug]# ./MediaServer	   ## 前台启动

关闭防火墙或者开放相关端口

[root@localhost Debug]# systemctl stop firewalld  //关闭防火墙
## 根据配置文件而定且按需求开放
[root@localhost Debug]# firewall-cmd --zone=public --add-port=80/tcp --permanent			##http.port
[root@localhost Debug]# firewall-cmd --zone=public --add-port=443/tcp --permanent			##https.port
[root@localhost Debug]# firewall-cmd --zone=public --add-port=554/tcp --permanent			##rtsp.port
[root@localhost Debug]# firewall-cmd --zone=public --add-port=554/udp --permanent			##rtsp.port
[root@localhost Debug]# firewall-cmd --zone=public --add-port=1935/tcp --permanent			##rtmp.port
[root@localhost Debug]# firewall-cmd --zone=public --add-port=10000/tcp --permanent			##rtp_proxy.port
[root@localhost Debug]# firewall-cmd --zone=public --add-port=10000/udp --permanent			##rtp_proxy.port
[root@localhost Debug]# firewall-cmd --zone=public --add-port=30000-30500/udp --permanent	##rtp.port-range
[root@localhost Debug]# firewall-cmd --zone=public --add-port=30000-30500/tcp --permanent	##rtp.port-range
[root@localhost ~]# firewall-cmd --reload     //开放端口后 需要更新一下

WVP-GB28181-pro

JDK

## jdk提取码
链接:https://pan.baidu.com/s/1pSRGdb_A6U7HA7Bb0vT11w 
提取码:jiol

## 安装jdk
[root@localhost ~]# tar zxvf jdk-8u121-linux-x64.tar.gz
[root@localhost ~]# mv jdk1.8.0_121/ /usr/local/jdk
[root@localhost ~]# vim /etc/profile
##末尾添加
export JAVA_HOME=/usr/local/jdk 
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/ 
export PATH=$PATH:$JAVA_HOME/bin
[root@localhost ~]# source /etc/profile
[root@localhost ~]# java -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)

Maven

[root@localhost ~]# wget https://archive.apache.org/dist/maven/maven-3/3.5.0/binaries/apache-maven-3.5.0-bin.tar.gz
[root@localhost ~]# tar zxvf apache-maven-3.5.0-bin.tar.gz
[root@localhost ~]# mv apache-maven-3.5.0 /usr/local/maven
[root@localhost ~]# vim /etc/profile
##末尾添加
export MAVEN_HOME=/usr/local/maven 
export PATH=$MAVEN_HOME/bin:$PATH
[root@localhost ~]# source /etc/profile
[root@localhost ~]# mvn -version
Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-04T03:39:06+08:00)
Maven home: /usr/local/maven

编译WVP-PRO

## 安装依赖
[root@localhost ~]# yum -y install nodejs npm

## 下载源码
[root@localhost ~]# cd /usr/local
[root@localhost local]# git clone https://gitee.com/pan648540858/wvp-GB28181-pro.git

## 编译静态页面
[root@localhost local]# cd wvp-GB28181-pro/web_src/
[root@localhost web_src]# npm --registry=https://registry.npm.taobao.org install
[root@localhost web_src]# npm run build

## 打包项目, 生成可执行jar
[root@localhost web_src]# cd ..
[root@localhost wvp-GB28181-pro]# mvn package

## 编译完成后在target目录下出现wvp-pro-x.x-xxxxxxxx.jar
## 导入MySQL文件
[root@localhost wvp-GB28181-pro]# cd sql/
[root@localhost sql]# mysql -uroot -p123456
MySQL> create database wvp_31;
MySQL> use wvp_31;
MySQL> source mysql.sql
MySQL> source update.sql;
MySQL> exit
## 配置文件修改
[root@localhost sql]# cd ../
[root@localhost wvp-GB28181-pro]# mv src/main/resources/application-dev.yml  target/application.yml 
[root@localhost wvp-GB28181-pro]# cd target/
[root@localhost target]# vim application.yml 
spring:
    # [可选]上传文件大小限制
    servlet:
        multipart:
            max-file-size: 10MB
            max-request-size: 100MB
    # REDIS数据库配置
    redis:
        # [必须修改] Redis服务器IP, REDIS安装在本机的,使用127.0.0.1
        host: 192.168.1.31
        # [必须修改] 端口号
        port: 6379
        # [可选] 数据库 DB
        database: 6
        # [可选] 访问密码,若你的redis服务器没有设置密码,就不需要用密码去连接
        password: 123456
        # [可选] 超时时间
        timeout: 10000
        # mysql数据源
    datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://192.168.1.31:3306/wvp_31?useUnicode=true&characterEncoding=UTF8&rewriteBatchedStatements=true&serverTimezone=PRC&useSSL=false&allowMultiQueries=true
        username: root
        password: 123456
        druid:
            initialSize: 10                       # 连接池初始化连接数
            maxActive: 200                        # 连接池最大连接数
            minIdle: 5                            # 连接池最小空闲连接数
            maxWait: 60000                        # 获取连接时最大等待时间,单位毫秒。配置了maxWait之后,缺省启用公平锁,并发效率会有所下降,如果需要可以通过配置useUnfairLock属性为true使用非公平锁。
            keepAlive: true                       # 连接池中的minIdle数量以内的连接,空闲时间超过minEvictableIdleTimeMillis,则会执行keepAlive操作。
            validationQuery: select 1             # 检测连接是否有效sql,要求是查询语句,常用select 'x'。如果validationQuery为null,testOnBorrow、testOnReturn、testWhileIdle都不会起作用。
            testWhileIdle: true                   # 建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。
            testOnBorrow: false                   # 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。
            testOnReturn: false                   # 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。
            poolPreparedStatements: false         # 是否開啟PSCache,並且指定每個連線上PSCache的大小
            timeBetweenEvictionRunsMillis: 60000  # 配置間隔多久才進行一次檢測,檢測需要關閉的空閒連線,單位是毫秒
            minEvictableIdleTimeMillis: 300000    # 配置一個連線在池中最小生存的時間,單位是毫秒
            filters: stat,wall,slf4j             # 配置监控统计拦截的filters,监控统计用的filter:sta, 日志用的filter:log4j, 防御sql注入的filter:wall
            useGlobalDataSourceStat: true         # 合并多个DruidDataSource的监控数据
            # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
            connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=1000
            #stat-view-servlet.url-pattern: /admin/druid/*

#[可选] WVP监听的HTTP端口, 网页和接口调用都是这个端口
server:
    port: 18080

# 作为28181服务器的配置
sip:
    # [必须修改] 本机的IP
    ip: 192.168.1.31
    # [可选] 28181服务监听的端口
    port: 5060
    # 根据国标6.1.2中规定,domain宜采用ID统一编码的前十位编码。国标附录D中定义前8位为中心编码(由省级、市级、区级、基层编号组成,参照GB/T 2260-2007)
    # 后两位为行业编码,定义参照附录D.3
    # 3701020049标识山东济南历下区 信息行业接入
    # [可选]
    domain: 4401020049
    # [可选]
    id: 44010200492000000001
    # [可选] 默认设备认证密码,后续扩展使用设备单独密码, 移除密码将不进行校验
    password: 123456

#zlm 默认服务器配置
media:
    id: ZLM_31	## ZLMediaKit配置的ID
    # [必须修改] zlm服务器的内网IP
    ip: 192.168.1.31
    # [必须修改] zlm服务器的http.port
    http-port: 80
    # [可选] zlm服务器的hook.admin_params=secret
    secret: 035c73f7-bb6b-4889-a715-d9eb2d1925cc
    # 启用多端口模式, 多端口模式使用端口区分每路流,兼容性更好。 单端口使用流的ssrc区分, 点播超时建议使用多端口测试
    rtp:
        # [可选] 是否启用多端口模式, 开启后会在portRange范围内选择端口用于媒体流传输
        enable: true
        # [可选] 在此范围内选择端口用于媒体流传输, 必须提前在zlm上配置该属性,不然自动配置此属性可能不成功
        port-range: 30000,30500 # 端口范围
        # [可选] 国标级联在此范围内选择端口发送媒体流,
        send-port-range: 30000,30500 # 端口范围
    # 录像辅助服务, 部署此服务可以实现zlm录像的管理与下载, 0 表示不使用
    record-assist-port: 0
    
# [根据业务需求配置]
user-settings:
    # [可选] 服务ID,不写则为000000
    server-id:
    # [可选] 自动点播, 使用固定流地址进行播放时,如果未点播则自动进行点播, 需要rtp.enable=true
    auto-apply-play: false
    # [可选] 部分设备需要扩展SDP,需要打开此设置
    senior-sdp: false
    # 保存移动位置历史轨迹:true:保留历史数据,false:仅保留最后的位置(默认)
    save-position-history: false
    # 点播等待超时时间,单位:毫秒
    play-timeout: 3000
    # 上级点播等待超时时间,单位:毫秒
    platform-play-timeout: 60000
    # 是否开启接口鉴权
    interface-authentication: true
    # 接口鉴权例外的接口, 即不进行接口鉴权的接口,尽量详细书写,尽量不用/**,至少两级目录
    interface-authentication-excludes:
        - /api/v1/**
    # 推流直播是否录制
    record-push-live: false
    # 国标是否录制
    record-sip: false
    # 是否将日志存储进数据库
    logInDatebase: false
    # 使用推流状态作为推流通道状态
    use-pushing-as-status: true
    # 按需拉流, true:有人观看拉流,无人观看释放, false:拉起后不自动释放
    stream-on-demand: true
    # 推流鉴权, 默认开启
    push-authority: true

# [可选] 日志配置, 一般不需要改
logging:
    config: classpath:logback-spring-local.xml

# 版本信息, 不需修改
version:
    version: "@project.version@"
    description: "@project.description@"
    artifact-id: "@project.artifactId@"

创建system启动文件

[root@localhost target]# vim /usr/lib/systemd/system/wvp-pro.service

[Unit]
Description=wvp-pro.service

[Service]
WorkingDirectory=/usr/local/wvp-GB28181-pro/target
PrivateTmp=true
Restart=always
Type=simple
ExecStart=/usr/local/jdk/bin/java -jar /usr/local/wvp-GB28181-pro/target/wvp-pro-2.3.2-11100927.jar  ##注意jar包名字
ExecStop=/usr/bin/kill -15 $MAINPID

[Install]
WantedBy=multi-user.target
## 启动wvp-pro
[root@localhost target]# systemctl daemon-reload
[root@localhost target]# systemctl start wvp-pro.service
[root@localhost target]# systemctl enable wvp-pro.service   
## 访问管理页面
http://192.168.1.31:18080
默认用户名:admin, 密码:admin

关闭防火墙或者开放相关端口

[root@localhost target]# systemctl stop firewalld  //关闭防火墙
[root@localhost target]# firewall-cmd --zone=public --add-port=5060/tcp --permanent		## sip接口
[root@localhost target]# firewall-cmd --zone=public --add-port=5060/udp --permanent		## sip接口
[root@localhost target]# firewall-cmd --zone=public --add-port=18080/tcp --permanent	## wvp平台端口
[root@localhost ~]# firewall-cmd --reload     //开放端口后 需要更新一下

国标注册

1、摄像头和wvp平台无网络问题
2、摄像头带有平台接入支持国标28181
3、wvp信息不要填错
4、设备编号不要冲突
5、通道编号不要冲突

``

查看
1、查看信息是否注册成功
平台–>国标设备–>有注册摄像头信息
在这里插入图片描述
2、查看摄像头是否能正常播放
平台–>分屏监控–>点击通道
在这里插入图片描述

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值