1. 环境准备CentOS系统基础配置在开始部署MediaServerUI之前我们需要确保CentOS系统已经做好基础准备。我用的是一台全新安装的CentOS 7.6服务器建议选择最小化安装版本这样可以避免不必要的软件冲突。首先执行系统更新是个好习惯yum update -y yum upgrade -y reboot系统重启后我们需要安装一些基础开发工具链。这些工具在后续编译和运行Node.js环境时都会用到yum groupinstall Development Tools -y yum install -y wget curl git unzip这里有个小技巧如果你不确定某个包是否已经安装可以用yum list installed | grep 包名来检查。我曾经遇到过因为缺少gcc-c导致Node.js编译失败的情况所以建议提前把这些依赖都装好。网络配置也很重要特别是防火墙设置。MediaServerUI需要通过浏览器访问所以需要开放对应的端口。假设我们使用默认的3000端口firewall-cmd --zonepublic --add-port3000/tcp --permanent firewall-cmd --reload提示如果你用的是云服务器记得在安全组规则中也放行相应端口。我刚开始部署时就犯过这个错误排查了半天才发现是云平台的安全组没配置。2. Node.js环境部署与优化2.1 选择合适的Node.js版本根据MediaServerUI的package-lock.json文件我们知道项目需要Node.js 12.0.8及以上版本。但直接用yum安装的版本可能比较旧我推荐使用NodeSource提供的仓库安装最新LTS版本curl -fsSL https://rpm.nodesource.com/setup_lts.x | bash - yum install -y nodejs安装完成后验证版本node -v npm -v如果显示版本号低于12.x就需要考虑升级了。我遇到过yum仓库版本滞后的问题这时候可以手动安装特定版本npm install -g n n 12.22.122.2 配置npm镜像源国内直接使用npm官方源速度很慢还经常出现超时错误。阿里云的镜像源是个不错的选择npm config set registry https://registry.npmmirror.com npm config get registry为了进一步提升安装速度可以配置npm的缓存和日志级别npm config set cache ~/.npm/.cache/cache --global npm config set loglevel warn注意有些教程会推荐使用cnpm但我实测发现cnpm有时会导致依赖解析问题。直接用npm换源更稳妥这也是官方推荐的做法。3. MediaServerUI项目部署实战3.1 获取并解压项目代码从Gitee克隆项目是个不错的选择速度比GitHub快很多wget https://gitee.com/kkkkk5G/MediaServerUI/repository/archive/master.zip unzip master.zip cd MediaServerUI解压后第一件事是检查项目结构。我习惯用tree命令快速查看yum install -y tree tree -L 2这个项目采用典型的前后端分离结构src目录存放Vue源码config目录有各种配置文件。特别要注意package.json和package-lock.json这两个文件它们定义了项目依赖。3.2 解决依赖安装问题执行npm install时可能会遇到各种问题。我总结了几种常见错误及解决方法Python环境问题npm ERR! gyp ERR! stack Error: Cant find Python executable python解决方法yum install -y python2 npm config set python /usr/bin/python2node-sass编译失败npm ERR! node-sass4.14.1 postinstall: node scripts/build.js解决方法npm rebuild node-sass权限不足npm ERR! Error: EACCES: permission denied解决方法chown -R $(whoami) ~/.npm4. 项目配置与ZLMediaKit对接4.1 修改全局配置文件MediaServerUI需要知道ZLMediaKit的地址才能正常工作。编辑global.js文件vi src/config/global.js主要修改两个参数serverip改成ZLMediaKit的实际IP和端口secret必须与ZLMediaKit配置文件的secret一致我曾经遇到过secret不匹配的问题症状是能打开页面但所有数据都显示为空。这时候可以检查ZLMediaKit的日志看是否有鉴权失败记录。4.2 构建与部署执行构建命令npm run build构建完成后dist目录就是我们要部署的内容。这里有个优化点可以配置nginx来提供静态文件服务而不是直接放在ZLMediaKit的www目录下。创建nginx配置文件vi /etc/nginx/conf.d/mediaserverui.conf添加以下内容server { listen 8080; server_name localhost; location / { root /path/to/dist; index index.html; try_files $uri $uri/ /index.html; } }这样部署的好处是可以独立管理前端资源不影响ZLMediaKit的正常运行。5. 常见问题排查与优化5.1 视频流无法播放问题新版ZLMediaKit修改了流地址规则需要调整MediaServerUI的代码找到src/components/videoList.vue文件将所有.flv替换为.live.flv这个改动涉及到多个地方建议用sed命令批量替换sed -i s/\.flv/\.live\.flv/g src/components/videoList.vue5.2 观看人数显示异常这是项目的一个已知bug修改src/components/videoList.vue第131行左右// 修改前 videoData.totoalReaderCount // 修改后 videoData.totalReaderCount5.3 性能优化建议随着流数量增加前端页面可能会变卡。可以通过以下方式优化调整轮询间隔修改src/config/global.js中的timeout参数启用gzip压缩在nginx配置中添加gzip on; gzip_types text/plain application/xml text/css application/javascript;使用CDN加速静态资源修改vue.config.js中的publicPath6. 日常维护与监控部署完成后建议设置系统服务来管理Node.js进程。创建systemd服务文件vi /etc/systemd/system/mediaserverui.service内容示例[Unit] DescriptionMediaServerUI Service Afternetwork.target [Service] ExecStart/usr/bin/npm run serve WorkingDirectory/path/to/MediaServerUI Userroot Grouproot Restartalways [Install] WantedBymulti-user.target启用服务systemctl daemon-reload systemctl enable mediaserverui systemctl start mediaserverui监控方面可以结合Prometheus和Grafana来收集展示性能指标。MediaServerUI本身也提供了一些基础监控数据可以通过API获取curl http://localhost:3000/api/status
CentOS部署MediaServerUI:Node.js环境配置与可视化流媒体管理实战
发布时间:2026/5/15 14:28:34
1. 环境准备CentOS系统基础配置在开始部署MediaServerUI之前我们需要确保CentOS系统已经做好基础准备。我用的是一台全新安装的CentOS 7.6服务器建议选择最小化安装版本这样可以避免不必要的软件冲突。首先执行系统更新是个好习惯yum update -y yum upgrade -y reboot系统重启后我们需要安装一些基础开发工具链。这些工具在后续编译和运行Node.js环境时都会用到yum groupinstall Development Tools -y yum install -y wget curl git unzip这里有个小技巧如果你不确定某个包是否已经安装可以用yum list installed | grep 包名来检查。我曾经遇到过因为缺少gcc-c导致Node.js编译失败的情况所以建议提前把这些依赖都装好。网络配置也很重要特别是防火墙设置。MediaServerUI需要通过浏览器访问所以需要开放对应的端口。假设我们使用默认的3000端口firewall-cmd --zonepublic --add-port3000/tcp --permanent firewall-cmd --reload提示如果你用的是云服务器记得在安全组规则中也放行相应端口。我刚开始部署时就犯过这个错误排查了半天才发现是云平台的安全组没配置。2. Node.js环境部署与优化2.1 选择合适的Node.js版本根据MediaServerUI的package-lock.json文件我们知道项目需要Node.js 12.0.8及以上版本。但直接用yum安装的版本可能比较旧我推荐使用NodeSource提供的仓库安装最新LTS版本curl -fsSL https://rpm.nodesource.com/setup_lts.x | bash - yum install -y nodejs安装完成后验证版本node -v npm -v如果显示版本号低于12.x就需要考虑升级了。我遇到过yum仓库版本滞后的问题这时候可以手动安装特定版本npm install -g n n 12.22.122.2 配置npm镜像源国内直接使用npm官方源速度很慢还经常出现超时错误。阿里云的镜像源是个不错的选择npm config set registry https://registry.npmmirror.com npm config get registry为了进一步提升安装速度可以配置npm的缓存和日志级别npm config set cache ~/.npm/.cache/cache --global npm config set loglevel warn注意有些教程会推荐使用cnpm但我实测发现cnpm有时会导致依赖解析问题。直接用npm换源更稳妥这也是官方推荐的做法。3. MediaServerUI项目部署实战3.1 获取并解压项目代码从Gitee克隆项目是个不错的选择速度比GitHub快很多wget https://gitee.com/kkkkk5G/MediaServerUI/repository/archive/master.zip unzip master.zip cd MediaServerUI解压后第一件事是检查项目结构。我习惯用tree命令快速查看yum install -y tree tree -L 2这个项目采用典型的前后端分离结构src目录存放Vue源码config目录有各种配置文件。特别要注意package.json和package-lock.json这两个文件它们定义了项目依赖。3.2 解决依赖安装问题执行npm install时可能会遇到各种问题。我总结了几种常见错误及解决方法Python环境问题npm ERR! gyp ERR! stack Error: Cant find Python executable python解决方法yum install -y python2 npm config set python /usr/bin/python2node-sass编译失败npm ERR! node-sass4.14.1 postinstall: node scripts/build.js解决方法npm rebuild node-sass权限不足npm ERR! Error: EACCES: permission denied解决方法chown -R $(whoami) ~/.npm4. 项目配置与ZLMediaKit对接4.1 修改全局配置文件MediaServerUI需要知道ZLMediaKit的地址才能正常工作。编辑global.js文件vi src/config/global.js主要修改两个参数serverip改成ZLMediaKit的实际IP和端口secret必须与ZLMediaKit配置文件的secret一致我曾经遇到过secret不匹配的问题症状是能打开页面但所有数据都显示为空。这时候可以检查ZLMediaKit的日志看是否有鉴权失败记录。4.2 构建与部署执行构建命令npm run build构建完成后dist目录就是我们要部署的内容。这里有个优化点可以配置nginx来提供静态文件服务而不是直接放在ZLMediaKit的www目录下。创建nginx配置文件vi /etc/nginx/conf.d/mediaserverui.conf添加以下内容server { listen 8080; server_name localhost; location / { root /path/to/dist; index index.html; try_files $uri $uri/ /index.html; } }这样部署的好处是可以独立管理前端资源不影响ZLMediaKit的正常运行。5. 常见问题排查与优化5.1 视频流无法播放问题新版ZLMediaKit修改了流地址规则需要调整MediaServerUI的代码找到src/components/videoList.vue文件将所有.flv替换为.live.flv这个改动涉及到多个地方建议用sed命令批量替换sed -i s/\.flv/\.live\.flv/g src/components/videoList.vue5.2 观看人数显示异常这是项目的一个已知bug修改src/components/videoList.vue第131行左右// 修改前 videoData.totoalReaderCount // 修改后 videoData.totalReaderCount5.3 性能优化建议随着流数量增加前端页面可能会变卡。可以通过以下方式优化调整轮询间隔修改src/config/global.js中的timeout参数启用gzip压缩在nginx配置中添加gzip on; gzip_types text/plain application/xml text/css application/javascript;使用CDN加速静态资源修改vue.config.js中的publicPath6. 日常维护与监控部署完成后建议设置系统服务来管理Node.js进程。创建systemd服务文件vi /etc/systemd/system/mediaserverui.service内容示例[Unit] DescriptionMediaServerUI Service Afternetwork.target [Service] ExecStart/usr/bin/npm run serve WorkingDirectory/path/to/MediaServerUI Userroot Grouproot Restartalways [Install] WantedBymulti-user.target启用服务systemctl daemon-reload systemctl enable mediaserverui systemctl start mediaserverui监控方面可以结合Prometheus和Grafana来收集展示性能指标。MediaServerUI本身也提供了一些基础监控数据可以通过API获取curl http://localhost:3000/api/status