如何在 Ubuntu 18.04 上安装 Ampache 音乐流媒体服务器

作者选择了 开放的互联网 / 自由言论基金作为 写给捐赠计划的一部分获得捐款。

介绍

Ampache是一个开源的音乐流服务器,允许您在自己的服务器上托管和管理您的数字音乐收藏。Ampache可以将您的音乐流到您的计算机,智能手机,平板电脑或智能电视。

在本教程中,您将安装和配置 Apache 网络服务器和 PHP 来服务您的 Ampache 实例,然后创建一个 MySQL 数据库, Ampache 将使用它来存储所有操作信息,最后您将上传您的音乐收藏,以便您可以开始流音乐。

前提条件

在您开始本指南之前,您将需要以下内容:

步骤 1 - 安装 Ampache

在此步骤中,您将下载 Ampache ZIP 档案到您的服务器,将其卸载到其安装主目录,并进行一些必要的文件系统更改。

首先,作为非根用户登录您的服务器,然后使用以下命令创建 Ampache 主目录:

1sudo mkdir /var/www/ampache

接下来,安装您需要解包 Ampache 档案的zip实用程序:

1sudo apt install zip

接下来,下载最新版本的 ZIP 档案,您可以在 Ampache 的 GitHub 页面找到最新版本的链接。

1wget https://github.com/ampache/ampache/releases/download/4.1.1/ampache-4.1.1_all.zip

接下来,将 ZIP 档案解包到 /var/www/ampache/ 目录中,使用 -d 选项:

1sudo unzip ampache-4.1.1_all.zip -d /var/www/ampache/

接下来,设置 Ampache 文件的用户和组身份,以便 Apache 能够读取、写入和执行 Ampache 实例文件:

1sudo chown --recursive www-data:www-data /var/www/ampache/

--重复性选项使chown将所有权和组身份的所有文件和子目录在/var/www/ampache/到Apache的用户和组www-data

接下来,重新命名包含在 ZIP 档案中的 .htaccess 文件。 .htaccess 文件包含 Apache 的安全和其他操作信息,但它们只会与文件扩展名 .htaccess 一起工作。

1sudo mv /var/www/ampache/rest/.htaccess.dist /var/www/ampache/rest/.htaccess
2sudo mv /var/www/ampache/play/.htaccess.dist /var/www/ampache/play/.htaccess
3sudo mv /var/www/ampache/channel/.htaccess.dist /var/www/ampache/channel/.htaccess

现在你将创建包含你的音乐文件的目录,出于安全原因,这个目录最好是在Ampache的安装目录之外创建的,因此,它不会被恶意的Web请求读取或改变,因为它位于Ampache的DocumentRoot之外。

创建目录, /data/Music,使用以下命令:

1sudo mkdir -p /data/Music

然后更改其所有者和组身份,以便Apache可以阅读和写入它:

1sudo chown www-data:www-data /data/Music

要完成设置,你将安装 FFmpeg,这是一个转换音频和视频从一个格式到另一个实用程序. 例如,你可以使用它来将MP3音乐文件转换为 OPUS音乐文件. Ampache使用FFmpeg来转换飞行音频从它被上传到听取设备可以播放的格式。

这是有用的,因为并非所有设备都能播放所有音乐格式,Ampache可以检测播放设备上支持的格式,并自动在支持的格式中提供您的音乐。

使用以下命令安装 FFmpeg:

1sudo apt install ffmpeg

您现在已经解包并为 Web 安装程序准备了您的 Ampache 实例,并安装了 FFmpeg 实用程序。

第2步:配置Apache和PHP

在本节中,您将通过创建一个新的 VirtualHost文件来配置Apache,这将提供Apache为您的Ampache服务器域提供所需的配置。

首先,安装一些额外的PHP模块,这些模块不包括在默认PHP安装中:

1sudo apt install php-mysql php-curl php-json php-gd php7.2-xml

这些模块提供以下额外的功能:

  • php-mysql - 允许 PHP 与 MySQL 数据库通信
  • php-curl - 允许 PHP 使用 curl 实用程序从远程服务器下载文件,如专辑封面艺术
  • php-json - 允许 PHP 阅读和操纵 JSON 格式文本文件
  • php-gd - 允许 PHP 操纵和创建图像文件
  • php7.2-xml - 允许 PHP 阅读和操纵 XML 格式文本文件

接下来,使用a2enmod实用程序启用几个Apache模块:

1sudo a2enmod rewrite expires

这些 Apache 模块允许 Apache 执行以下操作:

  • rewrite - 根据 Ampache 提供的规则修改或重写 URL
  • expires - 为图像等对象设置缓存期限,以便浏览器更有效地存储它们

现在,您将创建VirtualHost文件,告诉Apache如何和在哪里加载Ampache实例。

<$>[注] 注: 如果您在遵循如何在Ubuntu 18.04上安装Linux,Apache,MySQL,PHP(LAMP)堆栈指南时创建了一个测试VirtualHost文件,该文件必须被禁用。

1sudo a2dissite test_virtalhost_file

美元

现在,用文本编辑器创建并打开VirtualHost文件在/etc/apache2/sites-available/ampache.conf:

1sudo nano /etc/apache2/sites-available/ampache.conf

将以下VirtualHost模板添加到您的文件中:

 1[label /etc/apache2/sites-available/ampache.conf]
 2<VirtualHost *:80>
 3
 4    ServerName your_domain
 5    DocumentRoot /var/www/ampache
 6
 7    <Directory /var/www/ampache/>
 8        AllowOverride All
 9        Require all granted
10    </Directory>
11
12    RewriteEngine on
13    CustomLog /var/log/apache2/ampache.access.log common
14    ErrorLog  /var/log/apache2/ampache.error.log
15
16</VirtualHost>

您必须将your_domain更改为您重定向到您的服务器的域名. 完成编辑后,将此文件保存并退出编辑器。

这个VirtualHost文件中的指令是:

  • ServerName - Apache 将用于服务您的 Ampache 实例的域名
  • DocumentRoot - 您的服务器上的文件系统位置,其中 Ampache 实例位于。 这是您在步骤 1. 中解包的 ZIP 档案的相同位置。 * Directory - 本节将适用于路径中包含的文件和目录的配置传递给 Apache
  • RewriteEngine - 允许重写 Apache 模块
  • CustomLog - 创建一个日志文件,该日志将被 Apache 用来记录您的 Ampache 服务器的所有访问日志。

接下来,检查您创建的VirtualHost文件是否与apachectl实用程序没有任何错误:

1sudo apachectl configtest

如果您的配置不包含任何错误,您将在命令后看到以下输出:

1[secondary_label Output]
2Syntax OK

如果您的配置确实包含错误,输出将打印错误遇到的文件名和行号。

<$>[注] 注: 如果您看到错误:

1AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message

然后,您需要在 /etc/apache2/apache2.conf 编辑 Apache 的主要配置文件,并添加以下行:

1ServerName your_domain

美元

接下来,使用a2ensite实用程序启用新的VirtualHost配置:

1sudo a2ensite ampache

最后的配置是可选的,但建议的。在PHP上传文件的默认设置是不能上传大于2MB的文件。音乐文件往往比这大,所以增加这个尺寸将允许您使用Ampache接口在您的音乐收藏中上传更大的文件。

打开 /etc/php/7.2/apache2/php.ini 使用以下命令:

1sudo nano /etc/php/7.2/apache2/php.ini

更改以下几条线:

1[label /etc/php/7.2/apache2/php.ini]
2. . .
3upload_max_filesize = 2M
4. . .
5post_max_size = 8M
6. . .

二:

1[label /etc/php/7.2/apache2/php.ini]
2. . .
3upload_max_filesize = 100M
4. . .
5post_max_size = 110M
6. . .

您现在将能够上传高达 100MB 的音乐文件. 如果您打算上传大于此尺寸的文件,请使用更大的值。

最后,重新加载您更新的 Apache 配置:

1sudo systemctl reload apache2.service

您现在已经配置了Apache以通过HTTP服务Ampache,接下来您将获得TLS证书,并配置Apache以使用它,以便您可以通过HTTPS安全访问Ampache。

步骤 3 – 启用 HTTPS

在此步骤中,您将使用 Certbot实用程序获得免费的 Let's Encrypt TLS 证书,该实用程序允许 HTTPS 浏览。

这很重要,因为每次你登录到Ampache,你会通过互联网发送你的用户名和密码. 如果你不使用HTTPS,那么你的密码将被发送到简单的文本中,可以读取,因为它在互联网上旅行。

Ubuntu 的 LTS 版本往往没有最新的包,而 Certbot 程序也是如此。Certbot 开发人员维护了一个专用的 Ubuntu 存储库,称为 PPA,以便 Ubuntu 用户可以保持 Certbot 的最新副本。

使用以下命令安装 Certbot 存储库:

1sudo add-apt-repository ppa:certbot/certbot

现在,安装certbot实用程序:

1sudo apt install python-certbot-apache

接下来,使用certbot来获取TLS证书:

1sudo certbot --apache -d your_domain

--apache 选项使用 Apache 插件,允许 Certbot 自动阅读和配置 Apache. -d your_domain 指定您希望 Certbot 创建证书的域名。

当您运行certbot命令时,您将被问到一系列问题,您将被要求输入电子邮件地址并同意服务条款。

如果certbot 成功确认你控制你的域,它会要求你配置你的 HTTPS 设置:

1[secondary_label Output]
2Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
3-------------------------------------------------------------------------------
41: No redirect - Make no further changes to the webserver configuration.
52: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
6new sites, or if you're confident your site works on HTTPS. You can undo this
7change by editing your web server's configuration.
8-------------------------------------------------------------------------------
9Select the appropriate number [1-2] then [enter] (press 'c' to cancel):
  • 没有重定向:Apache将通过HTTP和HTTPS服务Ampache
  • 重定向:Apache将自动重定向任何HTTP连接到HTTPS。这意味着你的Ampache服务器只通过HTTPS可用。这个选项更安全,不会影响你的Ampache实例的行为。

最后,通过运行以下命令来测试证书的自动更新是否会成功:

1sudo certbot renew --dry-run

选项 --dry-run' 意味着 certbot' 将测试更新尝试,而不会对您的服务器进行任何永久性更改。

1[secondary_label Output]
2Congratulations, all renewals succeeded. The following certs have been renewed:
3  /etc/letsencrypt/live/your_domain/fullchain.pem (success)

Apache 和 PHP 现在已经准备好为您的 Ampache 实例提供服务. 在下一步,您将创建和配置 Ampache 数据库。

第4步:创建一个MySQL数据库

Ampache 使用 MySQL 数据库存储信息,如播放列表、用户偏好等。

您需要选择三个信息,以完成以下说明来创建 Ampache 数据库:

  1. ampache_database: Ampache 数据库的名称.
  2. database_user: Ampache 将用于访问数据库的 MySQL 用户. 这不是系统用户,只能访问数据库.
  3. database_password: 数据库用户的密码. 请确保选择安全密码.

记住这些细节,因为你以后会需要它们。

首先,用mysql命令打开交互式MySQL壳:

1mysql --user=root --password

--user=root 打开 MySQL 壳作为 MySQL 根用户和 --password 提示 root 用户的密码。

以下命令将创建一个空的数据库:

1CREATE DATABASE ampache_database;

然后创建 MySQL 用户:

1CREATE USER 'database_user'@'localhost' IDENTIFIED BY 'database_password';

现在,给新用户完全访问数据库:

1GRANT ALL PRIVILEGES ON ampache_database.* TO 'database_user'@'localhost';

最后,通过运行以下命令检查新数据库是否存在:

1SHOW DATABASES;

您将看到以下结果:

 1+--------------------+
 2| Database           |
 3+--------------------+
 4| information_schema |
 5| ampache_database  |
 6| mysql              |
 7| performance_schema |
 8| sys                |
 9+--------------------+
105 rows in set (0.00 sec)

通过输入exit;来退出 MySQL 壳。

最后,测试数据库、用户名和密码,尝试使用database_user登录到MySQL壳。

输入以下命令以登录 MySQL 壳作为新用户:

1mysql --user=database_user --password ampache_database

您现在已经创建了 Ampache 将使用的数据库,您已经完成了服务器配置,并准备用 Web 安装程序完成安装。

步骤 5 – 使用 Web 安装程序

在此步骤中,您将使用 Ampache 的 Web 安装程序完成安装,通过给 Ampache 运行所需的信息,例如 Web 界面管理员用户、数据库详细信息和其他设置。

通过输入https://your_domain到您的浏览器开始 Web 安装。

选择安装语言

选择 Ampache 的界面语言,然后点击 ** 开始配置 ** 按钮继续。

要求

此页面是 Ampache 检查服务器是否符合其要求的地方. 此页面上的每个行都代表了安装程序进行的测试,以确保,例如,所有所需的 PHP 模块都存在并工作。

点击继续按钮,转到下一页。

插入 Ampache 数据库

此页面创建 Ampache 的数据库,如果它不存在,并格式化它。

  • 所需数据库名称:ampache_database *MySQL 主机名称**:localhost *MySQL 端口(可选): MySQL 管理用户名: database_user MySQL 管理密码: database_password
  • 创建数据库:
  • 创建表格(ampache.sql):
  • 创建数据库用户:

Image showing the completed form

点击输入数据库按钮继续。

创建配置文件

此页面创建了 Ampache 将使用的配置文件,如下填写字段:

  • Web 路径:
  • 数据库名称: ampache_database
  • MySQL 主机名称: localhost
  • MySQL 端口(可选):
  • MySQL 用户名: database_user
  • MySQL 密码: database_password

Image showing the completed form

  • 安装类型

把它放在默认设置中。

  • 允许转码

从下载列表中选择 ffmpeg

  • 玩家( )

把这些留在默认设置中。

点击创建配置按钮继续。

创建 Admin 帐户

此页面创建了第一个 Web 界面用户. 此用户创建了完整的管理权限,是您将首次登录和配置 Ampache 的用户。

选择一个用户名和一个安全的密码,然后输入 密码确认密码字段。

点击创建帐户按钮继续。

Ampache 更新

此页面将对需要进行的 Ampache 数据库进行任何行政更改. 这些更改发生在版本升级期间,但由于这是一个新的安装程序,安装程序不会做出任何更改。

点击现在更新!按钮继续。

Ampache 更新

此页面打印并解释了安装程序在上一步中所做的任何更新,您不应该看到列出的任何更新。

点击 ** [返回主页] 链接继续进入登录页面. 输入您已设置的用户名和密码登录到您的 Ampache 服务器。

Ampache 尚未完全设置并准备好使用,您现在将通过添加您的音乐来完成设置,以便您可以开始使用新的 Ampache 服务器。

步骤 6 – 将您的音乐添加到 Ampache

在这个步骤中,你将配置一个音乐目录并上传一些音乐。Catalog是Ampache给音乐收藏的名称。Ampache能够从许多来源读取音乐,无论是在服务器上还是在外部,但在本教程中,你将上传和存储你的音乐在服务器上在本地目录中,因为Ampache指它。

首先,在您登录到 Ampache 时看到的第一个页面上,点击以下行中的 add a Catalog 链接:

** 尚未配置目录. 要开始流媒体,您现在需要添加目录。

这将带您到添加目录页面,填写以下字段:

  • 目录名称: 给本目录一个简短而难忘的名称。
  • 目录类型: 本地
  • 文件名格式:
  • 文件夹格式: 留下默认值
  • 收集艺术:
  • 从播放列表文件中构建播放列表: (m3u, m3u8, asx, pls, xspf):
  • 路径: data/Music( _)

Image showing the completed add catalog form

点击添加目录按钮来完成此页面。

在接下来的页面上,点击继续按钮,这将带您到显示目录页面,该页面将打印您创建的目录的详细信息。

现在,通过点击第三个导航图标来启用Ampache的Web上传功能,打开扩展设置:

Image showing the third settings icon

向下滚动到服务器配置部分,然后单击系统链接,打开系统设置页面。

查找 ** 允许用户上传** 行,然后从值列的下载菜单中选择 ** 启用**。

默认级别是 Catalog Manager,这允许 Catalog Manager和所有具有较大的权限的用户上传音乐。

您还需要设置将音乐添加到该目录的目录。 使用 目的地目录行设置此设置。

Image showing the allow upload and destination catalog lines

点击页面底部的更新偏好按钮来完成配置,您现在准备上传一些音乐。

首先,点击第一个设置图标:

Icon showing the first settings icon

然后点击在音乐部分中的上传链接。

Image showing upload link

上传页面上,点击浏览按钮,在您的计算机上找到您的音乐文件并上传它们。

如果您将 ArtistAlbum标签留空,那么Ampache 将读取音乐文件的 ID3标签,以便自动发现艺术家和专辑。

您的 Ampache 音乐服务器现在已经准备好开始流音乐。

结论

在本文中,您已安装并配置了 Ampache 音乐流服务器,并上传了一些您的音乐。您现在可以在任何设备上听音乐。 Ampache’s Documentation将帮助您使用和扩展您的流媒体服务器。 这些 Android 应用程序和这个 iOS 应用程序将将您的音乐流到您的手机。 Ampache 使用音乐文件中的 ID3 标签在服务器上组织您的音乐。

Published At
Categories with 技术
comments powered by Disqus