ant centos环境下 编译没有将配置文件加载_「动手打造家庭媒体网络平台」安装篇-centos搭建DLNA媒体服务

大家好,我是路程lucky,热爱开发、设计、学习、生活、爱捣鼓的web前后端工程师~

本文的重点是在之前文章提到创建的centos基础上继续搭建DLNA媒体服务。由于centos的系统是从零开始初步安装完成,我们在安装媒体服务时,不可避免出现各种环境依赖问题,本文也会提到常见的centos操作方法如下载文件、解压文件以及如何排查和解决centos的linux环境下依赖文件的安装、编译问题,并且还包含了防火墙设置。另外,本文还会涉及centos下如何将一个应用创建为系统自定义的service服务,毕竟我们的DLNA服务是需要服务器重启之后还能够自动启动的。干货满满,一定会让你有所收获~

引言

根据之前我们的宏伟蓝图动手实现打造家庭媒体平台设计方案,以及全面搭建好的centos服务器为基础,我们开始在centos从零安装核心功能-搭建DLNA媒体服务。本文还是以windows的虚拟机centos环境为基础,这样方便操作、截图,最终物理机也是同样的效果。

「动手打造家庭媒体网络平台」设计篇-灵感需求与架构设计

「动手打造家庭媒体网络平台」基础篇-安装centos系统

基于DLNA的媒体服务软件也有很多,但大家可能没有怎么去搭建和使用,都使用的默认windows、mac自带的媒体服务等。这里,我推荐一款比较好用,跨平台已在windows、Mac、linux都能搭建,基于java语言开发的serviio。官网地址:https://www.serviio.org/。经过我的使用测试,已经在各平台都能运行和使用(Mac、Windows版以后的文章中再拓展实践一下)。java开发的跨平台特性真的是非常不错。

以下我们都以serviio指代DLNA服务器。

安装环境依赖

首先,因为为了我们的实践不至于难以理解,我们还是先了解serviio软件安装大致的必要软件的依赖关系。而后续我们根据系统按照小白用户的视角逐步采坑,分析和解决遇到的问题。

dc7a1d0a8ebb2617885c5226a09783f5.png

serviio软件centos平台安装依赖流程图

由上图整理出来的关系图可以看出,serviio是依赖于ffmpeg的,ffmpeg大家应该也有了解,跨平台的视频媒体处理软件,几乎各种视频音频处理底层都会使用。而安装ffmpeg时又会出现一些依赖一环接着一环。我们开始逐步摸索。

环境准备

  • centos系统环境
  • serviio安装包:找到官方地址选择linux平台下载地址的url。官方下载页可以找到下载地址。https://www.serviio.org/download/
3fb2edba050760f863c7dab259a7f9db.png

选择linux环境版本

浏览器找到下载地址,找到url。格式结尾为tar.gz

fc8d5a7066e171e01b652aebb5fb1a44.png

浏览器中找到下载url地址

留意官网说明,依赖ffmpeg以及lame

8c70276d8e7e344a44c75d1d121d7988.png

留意官网所需依赖防止需要

开始安装

打开我们之前创建的虚拟机centos环境。开始命令行的操作。

step1.尝试使用wget下载serviio安装包

默认没有安装wget,提示命令不存在。执行yum install wget,则开始安装wget工具。

// 安装wget工具yum install wget
4d32987848ebe018fbb501841cc1b8ab.png

安装wget下载工具

1.1.命令下载压缩包文件

进入/lucky目录,执行命令下载压缩包文件。但你会突然发现出现报错。错误原因大致为https为需要CA证书的。下面也提示了可以增加参数忽略证书检查。

wget https://download.serviio.org/releases/serviio-2.1-linux.tar.gz

根据错误提示增加忽略检查证书参数--no-check-certificate。于是成功开始下载文件。

wget https://download.serviio.org/releases/serviio-2.1-linux.tar.gz --no-check-certificate
8618a7ec64a2ee70dd27086f90fc29ed.png

wget下载serviio安装包

step2.解压serviio安装包

进入/lucky目录,解压文件。就会在目录下创建serviio-2.1文件夹。

// 解压缩命令tar -xzvf serviio-2.1-linux.tar.gz
b42a0b39f5290e6e896bd6846cbabb8b.png

解压缩命令

2.1查看解压后内容以及设置文件夹权限可读可写

ls命令可以看到文件夹的目录结构。其中关键的几个目录是

  • bin:执行serviio的主目录。
  • log:日志目录(当程序跑起来就会自动生成了)。可以用来查看日志记录定位问题。
f2d3d005b660743171a83c0037e84275.png

ls查看文件夹目录以及设置文件夹权限可读可写

2.2查看解压后的README.txt官方给与的帮助文件

使用vi README.txt命令可以看官网给出文件中的内容。退出vim模式按 shift + :,输入q退出vim.

这里也能看到官方给与的提示。执行bin/serviio.sh是用来启动的。启动后有控制台访问。

51eca93a36f253dff40cc3ed406bc725.png

查看官方README.txt帮助文件

step3.尝试bin目录下执行命令

bin目录下的文件为两个脚本文件,一个是主程序足够用,一个是浏览器脚本(Linux安装GUI时才有效)。确保文件夹是可读可写可访问否则后续启动会出现权限问题。

d2caa01662e8ab896d7aa2f6a015b9a0.png

查看bin目录文件

3.1尝试执行主程序

进入bin目录,执行 sudo ./serviio.sh发现报错了,此时就需要到提示的日志文件中查看报错原因。

e94a71fc16f1249f7047c8df08cea2e6.png

执行命令报错

3.2排查java基础环境

首先我们就需要排查因为报错执行java,那必然现有java环境。这一点是首先需要明确的。

// 安装javayum install java-1.8.0-openjdk* -y
58304380ac489dd6909ffbf5ff8f8714.png

安装java

成功安装java,查看版本信息

// 查看java版本java -version
5b292123b317f888b083645d50375299.png

java环境安装完成

3.3查看错误日志

继续执行bin文件夹的命令发现还是报错。于是vim命令查看日志文件,按PageDown往下翻,逐步发现报错问题是没有安装FFMPEG

// 进入log日志cd log// 查看日志文件vi serviio.log
f70a2626186ebd08e993fb02369a4045.png

找到错误原因没有FFMPEG

3.4下载和安装FFMPEG

此时,我们需要类似之前一样,下载对应ffmpeg的tar.gz的包进行安装。这里就快速下载和解压。官网地址:http://ffmpeg.org/,找到对应linux平台压缩包。

// 进入目录cd /lucky // 下载wget http://ffmpeg.org/releases/ffmpeg-4.3.tar.gz// 解压tar -xzvf ffmpeg-4.3.tar.gz

3.4.1安装FFMPEG

进入ffmpeg目录,执行配置和安装。这里可以看出,按一般的 ./configure会出现警告依赖yasm。我们干脆直接增加参数不编译yasm

// 进入ffmpeg文件夹cd ffmpeg-4.3// 执行配置命令,这里ffmpeg一般都会启用share./configure --enable-share --disable-yasm
dd93aa3f16a7b562f04f57853d050538.png

进入ffmpeg目录进行编译

3.4.2安装lame音频工具依赖

下载和安装lame,这里和上面方式一样,解压,配置,以及安装。

96a9eb53634e5e54628754afc7cc7bae.png

下载lame依赖压缩包官网提供地址

但也不尽如人意,又出现报错。根据报错信息可以发现,没有安装gcc编辑环境。

// 安装gcc编译环境yum install gcc*
a35362f045e039abe440ac3beb1cf458.png

编译出现了报错,原因为检查gcc没有

重新安装,成功安装了lame依赖包。

3.4.3查看ffmpeg是否能运行

答案是,前途光明,道路曲折。还是出现了报错。但没关系,根据报错信息,解决问题。

提示某个.so文件找不到,执行安装命令安装依赖包。

c3619ea286d5d1fa57c12b3446fe57ff.png

安装缺失的.so依赖包

安装后还是不行,依然缺少包。

2e556ccdd9bec60d6e923af2897fa450.png

此时借助于强大的互联网找到问题应该还是配置问题。

在/etc/ld.so.conf.d文件增加lib文件夹。

// 找到配置文件vi /etc/ld.so.conf// 增加 lib64目录,全局能够找到依赖文件// 按insert键进入编辑模式// 增加路径/usr/local/lib/usr/local/lib64//按:,输入 wq,执行保存文件// 执行ldconfig命令(小写的l),使得配置生效ldconfig
243459b3c65b77f2a52132ffb7f960db.png

编辑/etc/ld.so.conf.d文件增加路径

3.4.4ffmpeg终于安装完成安装

6f239bb506f57c39b05fa66528704e4b.png

成功安装ffmpeg

step4.安装serviio为自定义系统服务

按照最初的设计,我们需要把serviio设置为自定义系统服务启动,这样重启也能够自动运行。

4.1创建service文件

一般centos都是可以利用这种方式变为自定义系统服务。关键的是几个要素:1.执行命令路径以及用户,这里可以发现用户为serviio。2.After输入的network.target表明在网络的服务完成后再加载,避免网络还没加载就加载serviio服务导致问题。

// 创建service文件touch /lib/systemd/system/serviio.service// 输入系统服务内容[Unit]Description=Serviio Server DaemonAfter=syslog.target network.target[Service]User=serviioType=simpleExecStart=/lucky/serviio-2.1/bin/serviio.sh[Install]WantedBy=multi-user.target
f165454fa6dfe5bda303cc1a13cef466.png

输入serviio启动服务代码

4.2添加用户serviio

8287ebc870b242554451827bb51028c0.png

添加用户serviio

4.3启动serviio系统服务

通过systemctl或者service命令,可以以系统服务方式控制serviio服务了。很方便。而且重启以后也会自动执行。

// 重新加载系统配置服务systemctl daemon-reload// 启用serviio服务systemctl enable serviio// 执行serviio服务systemctl start serviio// 查看serviio服务systemctl status serviio// 停止serviio服务systemctl stop serviio
60ccf8aee54f3e525f35da2cf66c09e5.png

成功启动服务

step5.防火墙设置

当服务启动后,会发现直接访问是无法访问的。根据经验,linux系统是默认开启防火墙的,确保安全。这里为了测试我们关闭防火墙

// 查看防火墙运行情况systemctl status firewalld.service// 禁用防火墙systemctl disable firewalld.service

查看、关闭防火墙

698ec71614a92103fb4eeef229ef790a.png

查看、关闭防火墙

step6.浏览器web端访问

此处可以参照体验篇的配置,查看更详细的配置。这里只提及配置过程中出现的异常问题。

「动手打造家庭媒体网络平台」体验篇-媒体服务配置和预览效果

6a2d5f5957d022a5558faa7cc70244eb.png

主界面

5.1排查web端配置无法保存的问题

web界面配置媒体文件夹保存操作时,出现了500报错。经过查看日志发现,报错为不能执行dcraw。经过网络搜索相关知识后发现,dcraw为一个依赖的包文件。

b1aba188ed6e69cec039471a45922110.png

原因是一开始ffmpeg没有正确安装完成只装了主程序,缺少了包,当完全安装后,又可以保存。

总结

感谢您真正有耐心地看完安装篇-搭建DLNA媒体服务。看了本篇在零基础的centos上安装搭建平台遇到了各种问题,但遇到问题,分析问题,解决问题的过程,正是宝贵的财富。真正做好一件事,需要有毅力付出更多的努力,会遇到各种挫折,但我们不能放弃追逐梦想前进的脚步,这也许就是人生。

后续我会从增加离线下载、内网透传等一系列增强功能,围绕着更好地为我们的网络媒体平台添砖加瓦,让生活更科技。

坚持原创,坚持动手实践,那么持续关注我,给予创造的动力,还给你一片广袤的天空。我是路程lucky,分享和实践专业技能,为美好生活和未来而努力奋斗。

相关文章

「动手打造家庭媒体网络平台」设计篇-灵感需求与架构设计

「动手打造家庭媒体网络平台」基础篇-安装centos系统

「动手打造家庭媒体网络平台」体验篇-媒体服务配置和预览效果

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值