技术教程 · 2019年12月5日 0

如何在CentOS 8上安装AirSonic Media Server

AirSonic是一个免费的,开放源代码和基于Web的媒体流服务器,使您可以从中央位置访问音乐。Airsonic与任何音频/视频文件格式兼容,并且还可以通过超文本传输​​协议进行流式传输。它是用Java语言编写的自托管媒体流,可以处理非常大的音乐收藏。它可以在大多数操作系统上运行,包括Windows,Linux和Mac OS。

在本教程中,我们将向您展示如何在CentOS 8上安装AirSonic媒体流服务器。

先决条件

  • 一台运行CentOS 8且具有至少2 GB RAM的服务器。
  • 在您的服务器上配置了root密码。

入门

默认情况下,在CentOS 8服务器中启用SELinux。因此,您需要先禁用它。

您可以通过编辑/ etc / selinux / config文件来做到这一点:

nano /etc/selinux/config

进行以下更改:

SELINUX=disabled

保存并关闭文件。然后,重新启动系统以应用更改。

安装Java

AirSonic基于Java,因此您需要将Java安装到系统中。您可以通过运行以下命令来安装Java:

dnf install java-1.8.0-openjdk-devel

安装Java之后,您可以使用以下命令来验证Java版本:

java -version

您应该看到以下输出:

openjdk version "1.8.0_232"
OpenJDK Runtime Environment (build 1.8.0_232-b09)
OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)

Install AirSonic

安装AirSonic

在开始之前,您需要创建一个用户以运行AirSonic。

首先,使用以下命令创建用户:

useradd airsonic

接下来,使用以下命令为AirSonic创建目录:

mkdir /var/airsonic /var/media_files

接下来,使用以下命令从Git存储库下载最新版本的AirSonic:

wget https://github.com/airsonic/airsonic/releases/download/v10.4.1/airsonic.war --output-document=/var/airsonic/airsonic.war

接下来,使用以下命令为airsonic目录授予适当的权限:

chown -R airsonic /var/airsonic
 chown -R airsonic /var/media_files

接下来,使用以下命令下载AirSonic的预配置systemd单元文件:

wget https://raw.githubusercontent.com/airsonic/airsonic/master/contrib/airsonic.service -O /etc/systemd/system/airsonic.service
 wget https://raw.githubusercontent.com/airsonic/airsonic/master/contrib/airsonic-systemd-env -O /etc/sysconfig/airsonic

接下来,使用以下命令重新加载systemd守护程序:

systemctl daemon-reload

接下来,启动AirSonic服务,并使用以下命令使其在启动时启动:

systemctl start airsonic
 systemctl enable airsonic

现在,您可以使用以下命令验证AirSonic的状态:

systemctl status airsonic

您应该获得以下输出:

? airsonic.service - Airsonic Media Server
   Loaded: loaded (/etc/systemd/system/airsonic.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2019-10-28 12:29:51 EDT; 2min 6s ago
 Main PID: 29564 (java)
    Tasks: 18 (limit: 5060)
   Memory: 315.0M
   CGroup: /system.slice/airsonic.service
           ??29564 /usr/bin/java -Xmx700m -Dairsonic.home=/var/airsonic -Dserver.context-path=/airsonic -Dserver.port=8080 -jar /var/airsonic/>

Oct 28 12:31:49 centos8 java[29564]: 2019-10-28 12:31:49.876  INFO --- l.c.StandardChangeLogHistoryService      : Reading from DATABASECHANGEL>
Oct 28 12:31:49 centos8 java[29564]: 2019-10-28 12:31:49.877  INFO --- l.executor.jvm.JdbcExecutor              : SELECT * FROM DATABASECHANGE>
Oct 28 12:31:49 centos8 java[29564]: 2019-10-28 12:31:49.969  INFO --- liquibase.changelog.ChangeSet            : Marking ChangeSet: classpath>
Oct 28 12:31:49 centos8 java[29564]:           classpath:liquibase/db-changelog.xml : Custom Precondition Failed: DBMS Major Version Precondit>
Oct 28 12:31:49 centos8 java[29564]: 2019-10-28 12:31:49.972  INFO --- l.executor.jvm.JdbcExecutor              : SELECT MAX(ORDEREXECUTED) FR>
Oct 28 12:31:50 centos8 java[29564]: 2019-10-28 12:31:50.017  INFO --- l.executor.jvm.JdbcExecutor              : INSERT INTO DATABASECHANGELO>
Oct 28 12:31:50 centos8 java[29564]: 2019-10-28 12:31:50.020  INFO --- l.l.StandardLockService                  : Successfully released change>
Oct 28 12:31:51 centos8 java[29564]: 2019-10-28 12:31:51.489  INFO --- o.airsonic.player.dao.PlayerDao          : Deleted 1 player(s) that hav>
Oct 28 12:31:52 centos8 java[29564]: 2019-10-28 12:31:52.424  INFO --- o.a.p.s.MediaScannerService              : Automatic media library scan>
Oct 28 12:31:53 centos8 java[29564]: 2019-10-28 12:31:53.093  INFO --- o.a.p.service.PodcastService             : Automa

您还可以使用以下命令检查AirSonic运行过程:

ps -ef | grep airsonic

您应该看到以下输出:

airsonic 29459 1 87 12:07?00:02:08 / usr / bin / java -Xmx700m -Dairsonic.home = / var / airsonic -Dserver.context-path = / airsonic -Dserver.port = 8080 -jar /var/airsonic/airsonic.war
root 29496 6103 0 12:10 pts / 0 00:00:00 grep --color = auto airsonic

访问AirSonic Web界面

在访问AirSonic Web界面之前,您需要使用防火墙打开端口80和8080。您可以使用以下命令进行操作:

firewall-cmd --zone=public --add-port=80/tcp --permanent
 firewall-cmd --zone=public --add-port=8080/tcp --permanent
 firewall-cmd --reload

接下来,打开您的Web浏览器,然后输入URL http:// your-server-ip:8080 / airsonic。您将被重定向到以下页面:

airsonic媒体服务器登录

提供尽可能管理员/管理员默认的用户名和密码,点击登录 按钮。您应该看到以下页面:

入门

接下来,您将需要更改默认的管理员密码。为此,请单击“ 更改 管理员 密码”。您应该看到以下页面:

设定值

选择管理员用户,选中更改密码复选框,键入新密码,然后单击保存按钮以更改默认密码。

接下来,您将需要设置媒体文件夹来存储您的音乐和视频。为此,请点击设置 媒体 文件夹。您应该看到以下页面:

媒体文件夹

现在,在“文件夹”框中键入/ var / media_files,然后单击“ 保存”按钮。

将Nginx配置为反向代理

接下来,您需要将Nginx配置为端口8080上Airsonic的反向代理。为此,请首先使用以下命令安装Nginx Web服务器:

dnf install nginx

安装后,创建一个Nginx虚拟主机配置文件:

nano /etc/nginx/conf.d/airsonic.conf

添加以下行:

server {
   listen 80;
   server_name your-server-ip;
   access_log off;
   error_log off;
   location / {
      proxy_pass http://127.0.0.1:8080;
      proxy_redirect off;
      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_max_temp_file_size 0;
      client_max_body_size 10m;
      client_body_buffer_size 128k;
      proxy_connect_timeout 90;
      proxy_send_timeout 90;
      proxy_read_timeout 90;
      proxy_buffer_size 4k;
      proxy_buffers 4 32k;
      proxy_busy_buffers_size 64k;
      proxy_temp_file_write_size 64k;
}
}

完成后保存并关闭文件。然后,使用以下命令测试Nginx是否存在语法错误:

nginx -t

您应该看到以下输出:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

接下来,启动Nginx服务,并使用以下命令使其在系统重启后启动:

systemctl start nginx
 systemctl enable nginx

现在,您可以通过访问URL http:// your-server-ip / airsonic来访问AirSonic

结论

恭喜你!您已成功将Nginx的AirSonic媒体服务器安装为CentOS 8上的反向代理。您现在可以托管自己的媒体服务器,并与朋友和家人共享音乐。如有任何问题,随时问我。