如何在CentOS 7上安装Airsonic媒体服务器
介绍
Airsonic是一个基于Web的开源媒体服务器,允许用户管理、流式传输和共享其音频和视频文件。它是一个多功能且强大的工具,支持各种媒体格式,并与Last.fm和Tidal等第三方服务集成。在本文中,我们将指导您完成在CentOS 7系统上安装Airsonic的过程。
前提条件
在开始之前,请确保您拥有:
具有root或sudo访问权限的CentOS 7系统。
稳定的互联网连接。
基本的命令行知识。
步骤1:更新您的系统
首先,运行以下命令将您的CentOS 7系统更新到最新版本:
sudo yum update sudo yum upgrade
步骤2:安装Java
Airsonic需要Java才能运行,因此我们首先需要安装它。运行以下命令安装OpenJDK 11软件包:
sudo yum install java-11-openjdk
要确认Java已安装,请运行以下命令:
java -version
步骤3:为Airsonic创建一个专用用户
出于安全考虑,建议创建一个单独的用户来运行Airsonic服务。使用以下命令创建一个名为“airsonic”的新用户:
sudo useradd -r -m -U -d /opt/airsonic -s /sbin/nologin airsonic
步骤4:下载和配置Airsonic
从官方GitHub仓库下载最新的Airsonic独立WAR文件:
sudo wget https://github.com/airsonic/airsonic/releases/download/v10.6.2/airsonic.war -P /opt/airsonic
调整下载文件的权限:
sudo chown airsonic: /opt/airsonic/airsonic.war
为Airsonic创建一个新的systemd服务文件:
sudo nano /etc/systemd/system/airsonic.service
将以下内容粘贴到文件中:
[Unit] Description=Airsonic Media Server After=remote-fs.target network.target [Service] User=airsonic Group=airsonic Environment="JAVA_OPTS=-Xmx700m" ExecStart=/usr/bin/java $JAVA_OPTS -Dairsonic.home=/opt/airsonic -Dserver.context-path=/airsonic -Dserver.port=8080 -jar /opt/airsonic/airsonic.war SuccessExitStatus=143 [Install] WantedBy=multi-user.target
保存文件并退出文本编辑器。
步骤5:启动和启用Airsonic服务
使用以下命令启动Airsonic服务:
sudo systemctl start airsonic
启用Airsonic在启动时启动:
sudo systemctl enable airsonic
步骤6:配置防火墙
如果您的系统启用了防火墙,请添加一条规则以允许在默认Airsonic端口(8080)上接收传入流量:
sudo firewall-cmd --permanent --add-port=8080/tcp sudo firewall-cmd --reload
步骤7:访问Airsonic Web界面
打开您的Web浏览器并导航到http://your_server_IP:8080/airsonic。您将看到Airsonic登录页面。使用默认用户名“admin”和密码“admin”登录。首次登录后,务必立即更改默认密码以确保安全。
步骤8:配置Airsonic
登录后,您将看到Airsonic仪表板。在这里,您可以自定义设置、添加媒体文件夹和配置转码选项。
要添加媒体文件夹,请转到“设置”>“媒体文件夹”,然后单击“添加媒体文件夹”按钮。提供媒体文件夹的路径并选择文件夹类型(音乐或视频)。单击“保存”以添加文件夹。
要配置转码选项,请转到“设置”>“转码”。Airsonic附带了针对各种媒体格式的预配置转码设置,但您可以根据需要自定义它们。
根据需要调整媒体扫描程序、网络和安全设置。进行任何更改后,请务必单击“保存”。
步骤9:享受您的Airsonic媒体服务器
完成所有设置后,您现在可以使用Airsonic来流式传输、管理和共享您的媒体文件。您可以从任何具有Web浏览器的设备访问您的Airsonic服务器,包括智能手机、平板电脑和计算机。
步骤10:配置反向代理(可选)
如果您想使用域名或子域名访问Airsonic,您可以使用Nginx或Apache等Web服务器设置反向代理。在此示例中,我们将使用Nginx。
安装Nginx
sudo yum install epel-release sudo yum install nginx
启动并启用Nginx
sudo systemctl start nginx sudo systemctl enable nginx
创建一个新的Nginx服务器块配置文件
sudo nano /etc/nginx/conf.d/airsonic.conf
将以下内容粘贴到文件中,将yourdomain.com替换为您的域名或子域名:
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass https://:8080/airsonic/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
保存文件并退出文本编辑器。
重新加载Nginx以应用更改
sudo systemctl reload nginx
更新您的DNS设置以将您的域名或子域名指向您的服务器的IP地址。
步骤11:使用SSL保护您的Airsonic服务器(可选)
为了保护您的数据并增强Airsonic服务器的安全性,强烈建议使用HTTPS。一种实现此目的的方法是从Let's Encrypt获取免费的SSL证书。
安装Certbot和Nginx插件
sudo yum install certbot python2-certbot-nginx
运行Certbot以获取和安装SSL证书
sudo certbot --nginx -d yourdomain.com
按照屏幕上的说明完成SSL证书设置。完成后,您可以通过HTTPS访问您的Airsonic服务器。
步骤12:启用自动SSL续订(可选)
Let's Encrypt SSL证书有效期为90天。为了自动化续订过程,请创建一个cron作业以定期运行Certbot续订命令。
打开crontab文件
sudo crontab -e
将以下行添加到文件中:
0 2 * * * /usr/bin/certbot renew --quiet
这将在每天凌晨2点运行续订命令。如果证书即将过期,Certbot将自动续订它。
通过执行这些附加步骤,您可以进一步增强Airsonic媒体服务器的功能和安全性。使用反向代理、SSL证书和自动证书续订,您可以在流式传输和共享媒体文件时获得更安全和用户友好的体验。
步骤13:安装和配置数据库(可选)
默认情况下,Airsonic使用嵌入式H2数据库来存储其数据。但是,您可以通过使用PostgreSQL或MySQL/MariaDB等外部数据库来提高Airsonic服务器的性能和可靠性。在此示例中,我们将安装和配置PostgreSQL。
安装PostgreSQL
sudo yum install postgresql-server postgresql-contrib
初始化PostgreSQL数据库
sudo postgresql-setup initdb
启动并启用PostgreSQL服务
sudo systemctl start postgresql sudo systemctl enable postgresql
为Airsonic创建一个新的PostgreSQL用户和数据库
sudo -i -u postgres createuser airsonic createdb -O airsonic airsonicdb exit
编辑PostgreSQL配置文件以允许本地连接
sudo nano /var/lib/pgsql/data/pg_hba.conf
查找以下行:
host all all 127.0.0.1/32 ident host all all ::1/128 ident
将ident替换为md5:
host all all 127.0.0.1/32 md5 host all all ::1/128 md5
保存文件并退出文本编辑器。
重新启动PostgreSQL服务
sudo systemctl restart postgresql
更新Airsonic服务文件以使用PostgreSQL数据库:
sudo nano /etc/systemd/system/airsonic.service
修改Environment和ExecStart行如下:
Environment="JAVA_OPTS=-Xmx700m -Dspring.datasource.url=jdbc:postgresql://:5432/airsonicdb -Dspring.datasource.username=airsonic -Dspring.datasource.password=your_password" ExecStart=/usr/bin/java $JAVA_OPTS -Dairsonic.home=/opt/airsonic -Dserver.context-path=/airsonic -Dserver.port=8080 -Dspring.profiles.active=legacy -jar /opt/airsonic/airsonic.war
将your_password替换为Airsonic PostgreSQL用户的强密码。
保存文件并退出文本编辑器。
重新启动Airsonic服务
sudo systemctl restart airsonic
步骤14:配置第三方集成(可选)
Airsonic支持与Last.fm、Tidal和Google Drive等各种第三方服务的集成。要配置这些集成,请按照以下步骤操作:
**Last.fm** - 转到“设置”>“个人”,并在“Last.fm Scrobbling”部分输入您的Last.fm用户名和密码。单击“保存”以启用scrobbling。
**Tidal** - 转到“设置”>“网络”,并在“Tidal设置”部分输入您的Tidal API令牌。单击“保存”以启用Tidal集成。
**Google Drive** - 转到“设置”>“媒体文件夹”,然后单击“添加媒体文件夹”按钮。选择“Google Drive”作为文件夹类型,然后按照屏幕上的说明进行身份验证并授权访问您的Google Drive帐户。
通过这些附加步骤,您可以进一步增强Airsonic媒体服务器的功能。通过使用外部数据库,您可以提高性能和可靠性,而第三方集成允许您将服务器连接到Last.fm、Tidal和Google Drive等流行服务。
结论
在本文中,我们指导您完成了在CentOS 7上安装和配置Airsonic媒体服务器的过程。使用Airsonic,您可以轻松流式传输您的音乐和视频,与朋友和家人共享您的媒体库,并在任何设备上欣赏您的内容。
数据结构
网络
关系数据库管理系统(RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP