Tutorial

Установка Ampache Music Streaming Server на Ubuntu 18.04

Published on April 28, 2020
Русский
Установка Ampache Music Streaming Server на Ubuntu 18.04

Автор выбрал фонд Open Internet/Free Speech для получения пожертвований в рамках программы Write for DOnations.

Введение

Ampache — это сервер для потоковой трансляции музыки с открытым исходным кодом, который позволяет публиковать и управлять вашей цифровой музыкальной коллекцией на своем собственном сервере. Ampache может транслировать поток музыки на ваш компьютер, смартфон, планшет или телевизор с поддержкой технологии Smart TV. Вам больше не придется хранить вашу коллекцию музыки отдельно на каждом устройстве для прослушивания. Ampache позволит вам управлять вашей музыкой на сервере при помощи веб-интерфейса Ampache и прослушивать ее в любом месте, где бы вы не находились.

В этом руководстве вы установите и настроите веб-сервер Apache и PHP, который будет обслуживать ваш экземпляр Ampache. Затем вы создадите базу данных MySQL, которая будет использоваться Ampache для хранения всей рабочей информации. В заключении вы загрузите свою коллекцию музыки для дальнейшей потоковой трансляции.

Предварительные требования

Для прохождения этого обучающего руководства вам потребуется следующее:

Шаг 1 — Установка Ampache

На этом шаге вы загрузите ZIP-архив Ampache на ваш сервер, распакуете его в домашнюю директорию для установки и внесете необходимые системные изменения.

Войдите на сервер как non-root user. Создайте домашнюю директорию Ampache с помощью следующей команды:

  1. sudo mkdir /var/www/ampache

Установите утилиту zip для распаковки архива Ampache:

  1. sudo apt install zip

Загрузите ZIP-архив с последней версией. Ссылка на последнюю версию находится на странице Ampache GitHub. В этом руководстве используется версия 4.1.1​:

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

Распакуйте ZIP-архив в директорию /var/www/ampache/, используя опцию -d:

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

Определите пользователя и групповую принадлежность файлов Ampache, чтобы Apache смог считывать, записывать и выполнять файлы экземпляра Ampache:

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

Опция --recursive позволяет команде chown менять владельца и групповую принадлежность всех файлов, а также поддиректорию в /var/www/ampache на пользователя и группу www-data Apache.

Переименуйте файлы .htaccess в ZIP-архиве. Файлы .htaccess содержат информацию по безопасности и рабочие данные Apache. Эти файлы могут работать только с расширением .htaccess. Переименуйте полученные файлы .htaccess.dist в .htaccess​​, выполнив следующие команды:

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

Далее вы создадите директорию для ваших музыкальных файлов. В целях обеспечения безопасности эта директория не должна находиться в директории с установочными файлами Ampache. Это защитит ее от считывания и злоумышленники не смогут внести изменения в нее, так как она будет находиться за пределами DocumentRoot​​​ Ampache.

Создайте директорию /data/Music с помощью следующей команды:

  1. sudo mkdir -p /data/Music

Измените владельца и групповую принадлежность, чтобы Apache мог выполнять считывание и запись файлов:

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

Для завершения настройки установите утилиту FFmpeg для конвертации аудио и видео из одного формата в другой. Например, вы сможете использовать ее для конвертации музыкального файла из MP3 формата в формат OPUS. Ampache использует FFmpeg для быстрой конвертации аудиофайла из формата загрузки в формат для проигрывания на устройстве. Этот процесс называется транскодингом.

Он удобен, так как многие устройства не поддерживают воспроизведение всех форматов музыкальных файлов. Ampache может определять форматы, поддерживаемые устройством, и автоматически конвертировать загружаемые файлы в нужный формат.

Установите FFmpeg с помощью следующей команды:

  1. sudo apt install ffmpeg

Распаковка завершена, вы подготовили ваш экземпляр Ampache для веб-установщика и установили утилиту FFmpeg. Далее вы настроите Apache и PHP для обслуживания вашего экземпляра Ampache.

Шаг 2 — Настройка Apache и PHP

В этом разделе вы настроите Apache, создадите новый файл VirtualHost, который будет определять конфигурацию Apache для обслуживания вашего домена сервера Ampache. Вы также установите дополнительные модули PHP, расширяющие возможности PHP для удовлетворения требований Ampache

Установите несколько дополнительных модулей PHP, которые не были включены в пакет установки PHP по умолчанию:

  1. sudo 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.

Включите пару модулей Apache с помощью утилиты a2enmod:

  1. sudo a2enmod rewrite expires

Эти модули позволяют Apache выполнять следующее:

  • rewrite — изменяет или перезаписывает URL-адреса согласно правилам Ampache.
  • expires — определяет период хранения объектов, например, изображений, для повышенной эффективности хранения данных в браузере.

Сейчас вы создадите файл VirtualHost, указывающий Apache на то, как и откуда загрузить экземпляр Ampache.

Примечание. Если вы создали тестовый файл VirtualHost, в котором используется ваше доменное имя Ampache, созданное по инструкциям из руководства «Установка стека Linux, Apache, MySQL, PHP (LAMP) на Ubuntu 18.04», вы должны выключить его. Для выключения воспользуйтесь утилитой a2dissite:

  1. sudo a2dissite test_virtalhost_file

Создайте и откройте файл VirtualHost в текстовом редакторе в /etc/apache2/sites-available/ampache.conf:

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

Добавьте следующий шаблон VirtualHost в ваш файл:

/etc/apache2/sites-available/ampache.conf
<VirtualHost *:80>

    ServerName your_domain
    DocumentRoot /var/www/ampache

    <Directory /var/www/ampache/>
        AllowOverride All
        Require all granted
    </Directory>

    RewriteEngine on
    CustomLog /var/log/apache2/ampache.access.log common
    ErrorLog  /var/log/apache2/ampache.error.log

</VirtualHost>

Измените your_domain​​ на доменное имя, которое вы перенаправили на ваш сервер. После завершения сохраните файл и выйдите из редактора.

Директивы в файле VirtualHost:

  • ServerName — доменное имя, которое Apache будет использовать для обслуживания вашего экземпляра Ampache.
  • DocumentRoot — местоположение файловой системы на вашем сервере с установленным экземпляром Ampache. Оно совпадает с местом распаковки ZIP-архива на шаге 1.
  • Directory — этот раздел передает конфигурацию в Apache, которая применяется ко всем файлам и директориям в составе пути.
  • RewriteEngine — позволяет выполнить перезапись модуля Apache.
  • CustomLog — создает файл журнала, который будет использовать Apache для записи всех сеансов доступа для вашего сервера Ampache.
  • ErrorLog — создает файл журнала, который будет использовать Apache для записи всех ошибок, создаваемых сервером Ampache.

Используя утилиту apachecl, проверьте файл VirtualHost на отсутствие ошибок:

  1. sudo apachectl configtest

Если ошибки отсутствуют, после команды вы увидите следующий результат:

Output
Syntax OK

Если в конфигурации содержатся ошибки, в результате будет указано имя файла и номер строки, где была обнаружена ошибка.

Примечание. В случае обнаружения ошибки:

AH00558: 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

Отредактируйте файл основной конфигурации Apache в /etc/apache2/apache2.conf и добавьте следующую строку:

ServerName your_domain

Активируйте новую конфигурацию VirtualHost с помощью утилиты a2ensite:

  1. sudo a2ensite ampache

Конечная конфигурация необязательна, но рекомендуется. По умолчанию в PHP нельзя загружать файлы размером, превышающим 2 Мб. Музыкальные файлы обычно имеют больший размер, поэтому увеличение значения по умолчанию позволит использовать интерфейс Ampache для загрузки файлов большего размера в вашу коллекцию музыки.

Откройте /etc/php/7.2/apache2/php.ini с помощью следующей команды:

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

Внесите изменения в следующие строки:

/etc/php/7.2/apache2/php.ini
. . .
upload_max_filesize = 2M
. . .
post_max_size = 8M
. . .

До:

/etc/php/7.2/apache2/php.ini
. . .
upload_max_filesize = 100M
. . .
post_max_size = 110M
. . .

Теперь вы сможете загружать музыкальный файлы размером до 100 Мб. Введите большее значение для загрузки файлов большего размера. Сохраните и закройте файл.

Перезагрузите обновленную конфигурацию Apache:

  1. sudo systemctl reload apache2.service

Вы только что настроили Apache для обслуживания Ampache через HTTP. Далее вы получите сертификат TLS, произведете настройку Apache для защиты доступа к Ampache через HTTPS.

Шаг 3 — Активация HTTPS

На этом шаге вы получите бесплатный TLS сертификат Let’s Encrypt TLS с помощью утилиты Certbot, который активирует протокол HTTPS. Certbot создаст сертификат, автоматически сгенерирует требуемую конфигурацию для Apache и произведет автоматическое обновление сертификата.

Это важно, поскольку при каждом входе в Ampache вы будете отсылать ваше имя пользователя и пароль через сеть Интернет. Если не использовать HTTPS, то незащищенный пароль можно будет прочесть во время его пересылки по сети Интернет.

Релизы LTS для Ubuntu обычно не имеют последних пакетов, для этого используется программа Certbot. Разработчики Certbot создали репозиторий специально для Ubuntu, также известный как PPA, где пользователи Ubuntu имеют возможность скачать Certbot и выполнить ее обновление до последней версии.

Установите репозиторий Certbot с помощью команды:

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

Установите утилиту certbot:

  1. sudo apt install python-certbot-apache

Используйте утилиту Certbot для получения сертификата TLS:

  1. sudo certbot --apache -d your_domain

Опция --apache использует плагин Apache, позволяющий Certbot автоматически считывать и настраивать Apache. your_domain определяет доменное имя для которого Certbot создаст сертификат.

При выполнении команды certbot вам будет предложено ответить на несколько вопросов. От вас попросят ввести адрес электронной почты и согласиться с условиями обслуживания.

Если программа certbot успешно установит, что домен контролируется вами, она попросит вас произвести настройку HTTPS:

Output
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. ------------------------------------------------------------------------------- 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. ------------------------------------------------------------------------------- Select the appropriate number [1-2] then [enter] (press 'c' to cancel):
  • No redirect​​​: Apache будет обслуживать Ampache через HTTP и HTTPS.
  • Redirect: Apache автоматически перенаправит любые соединения через HTTP на HTTPS. Это будет означать, что доступ к вашему серверу Ampache будет возможен только через HTTPS. Опция обеспечивает большую защиту и не влияет на работу вашего экземпляра Ampache. Рекомендуется сделать этот выбор.

Убедитесь, что автоматическое обновление сертификата было успешно выполнено с помощью команды:

  1. sudo certbot renew --dry-run

Опция --dry-run означает, что certbot проверит попытку обновления без внесения постоянных изменений в ваш сервер. Если проверка пройдет успешно, в результате будет содержаться следующая строка:

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

Apache и PHP готовы к обслуживанию вашего экземпляра Ampache. На следующем шаге вы создадите и настроите базу данных Ampache.

Шаг 4 — Создание базы данных MySQL

Ampache использует базу данных MySQL для хранения различной информации, например, плейлистов, пользовательских настроек и т. д. На этом шаге вы создадите базу данных и пользователя MySQL, который будет иметь доступ к ней.

Для создания базы данных Ampache вам необходимо предоставить следующую информацию:

  1. ampache_database: имя базы данных Ampache.
  2. database_user: пользователь MySQL, который будет использоваться Ampache для доступа к базе данных. Этот пользователь отличается от пользователя системы и имеет доступ только к базе данных.
  3. database_password: пароль пользователя базы данных. Убедитесь, что выбрали надежный пароль.

Запомните указанную информацию, она понадобится вам позднее.

Откройте интерактивную оболочку MySQL с помощью команды mysql:

  1. mysql --user=root --password

--user=root открывает оболочку MySQL от имени root user, а --password запрашивает пароль пользователя.

Создайте пустую базу данных с помощью команды:

  1. CREATE DATABASE ampache_database;

Создайте пользователя MySQL:

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

Предоставьте новому пользователю полный доступ к базе данных:

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

Проверьте, что новая база данных была создана с помощью команды:

  1. SHOW DATABASES;

Результат будет выглядеть следующим образом:

+--------------------+
| Database           |
+--------------------+
| information_schema |
| ampache_database  |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

Выполните выход из оболочки MySQL с помощью команды exit;.

Проверьте базу данных, имя пользователя и пароль путем входа в оболочку MySQL с database_user.

Введите следующую команду для входа в оболочку MySQL в качестве нового пользователя:

  1. mysql --user=database_user --password ampache_database

Вы создали базу данных для использования Ampache. Вы закончили настройку сервера и готовы завершить процесс установки с помощью веб-установщика.

Шаг 5 — Использование веб-установщика

На этом шаге вы используете веб-установщик Ampache для завершения процесса установки и предоставления Ampache необходимой информации для работы, например, имени администратора веб-интерфейса, информации по базе данных и других настроек.

Введите https://your_domain​​​ в ваш браузер для начала веб-установки.

Выберите язык установки

Выберите язык интерфейса Ampache и нажмите кнопку Start Configuration, чтобы продолжить.

Требования

На этой странице Ampache выполнит проверку соответствия сервера необходимым требованиям. Каждая строка страницы выполняет определенную проверку, например, проверку того, что все модули PHP присутствуют и находятся в рабочем состоянии. После того, как рядом с каждой проверкой появится галочка зеленого цвета, это будет означать, что ваш сервер готов к работе с Ampache.

Нажмите Continue для перехода на следующую страницу.

Вставка базы данных Ampache

Если база данных Ampache отсутствует, то на этой странице она будет создана и отформатирована. Заполните следующие поля:

  • Требуемое имя базы данных: ampache_database
  • Имя хоста MySQL: localhost
  • Порт MySQL (необязательно):<EMPTY>
  • Имя администратора MySQL: database_user
  • Пароль администратора MySQL: database_password
  • Создайте базу данных:<UNCHECKED>
  • Создайте таблицы (ampache.sql):<CHECKED>
  • Создайте пользователя базы данных:<UNCHECKED>

Изображение заполненной формы

Нажмите кнопку Insert Database для продолжения.

Создание файла конфигурации

На этой странице создается файл конфигурации для использования Ampache. Заполните поля следующим образом:

  • Сетевой путь:<EMPTY>

  • Имя базы данных: ampache_database

  • Имя хоста MySQL: localhost

  • Порт MySQL Port (необязательно):<EMPTY>

  • Имя пользователя MySQL: database_user

  • Пароль MySQL: database_password

Изображение заполненной формы

  • Тип установки Оставьте значение по умолчанию.

  • Разрешить транскодинг Выберите ffmpeg из выпадающего списка.

  • Проигрыватели Оставьте значения по умолчанию.

Нажмите кнопку Create Config для продолжения.

Создайте учетную запись администратора

На этой странице создается главный пользователь веб-интерфейса. Этот пользователь будет обладать всеми административными правами и привилегиями, вы используете его для входа и первой настройки Ampache.

Выберите имя пользователя и надежный пароль, введите пароль в поля Password и Confirm Password.

Нажмите кнопку Create Account​​​ для продолжения.

Обновление Ampache

На этой странице можно внести любые необходимые административные изменения в базу данных Ampache. Изменения вносятся во время последующего обновления программы, так как установка была выполнена в первый раз, никаких изменений не будет.

Нажмите кнопку **Update Now!**​​​ для продолжения.

Обновление Ampache

На этой странице отображаются и разъясняются все изменения, произведенные установщиком на предыдущем шаге. Для вас эта страница будет пустой.

Пройдите по ссылке [Return to main page] для перехода на страницу входа в систему. Введите имя пользователя и пароль, которые были определены для входа на сервер Ampache.

Для начала использования Ampache необходимо выполнить еще одну небольшую настройку. Настройка будет заключаться в добавлении музыки для вашего нового сервера Ampache.

Шаг 6 — Добавление вашей музыки в Ampache

Для начала использования сервера необходимо добавить музыкальные файлы. На этом шаге вы настроите каталог для музыки и загрузите в него несколько музыкальных файлов. “Каталог” - это имя, которое Ampache присваивает коллекции музыки. Ampache может загружать музыку как с сервера, так и из внешних источников, здесь вы загрузите и сохраните музыкальные файлы с сервера в локальный каталог Ampache.

Пройдите по ссылке add a Catalog в следующей сроке на первой странице, которую вы увидите после входа в Ampache:

Настройка Catalog еще не выполнена. Для начала потокового воспроизведения ваших медиа-файлов вам потребуется добавить Catalog.

Для этого нужно перейти на страницу Add Catalog​​​. Заполните поля следующим образом:

  • Имя каталога``: присвойте каталогу короткое, запоминающееся имя.
  • Тип каталога: local
  • Шаблон имени файла:<EMPTY>
  • Шаблон папки: оставьте значение по умолчанию.
  • Gather Art:<CHECKED>
  • Создавать плейлисты из файлов плейлистов (m3u, m3u8, asx, pls, xspf):<UNCHECKED>
  • Путь: /data/Music

Изображение завершенной формы добавления каталога

Нажмите кнопку Add Catalog для завершения действий на этой странице.

Нажмите кнопку Continue на следующей странице. На экране появится страница Show Catalogs​​​, где будет отображаться информация по созданному каталогу. Настройки каталога можно изменять в любое время.

Включите утилиту веб-загрузки Ampache, нажав на третью навигационную иконку для доступа к расширенным настройкам:

Изображение третьей иконки настроек

Прокрутите вниз до раздела Server Config и пройдите по ссылке System для того, чтобы открыть страницу с системными настройками.

Найдите строку Allow user uploads​​​​​ и выберите Enable из выпадающего меню в столбце Value.

Вы также можете выбрать уровень пользователя для загрузки музыкальных файлов. Уровень по умолчанию Catalog Manager​​​, он позволяет всем пользователям уровня Catalog Manager и выше загружать музыку. В нашем случае это администратор.

Также необходимо установить каталог для добавления музыкальных файлов. Определите его в строке Destination catalog. Выберите созданный каталог из выпадающего списка Value.

Изображение строк разрешения на загрузку и каталога назначения

Нажмите кнопку Update Preferences для завершения настройки конфигурации. Вы можете загрузить музыкальные файлы.

Нажмите на первую иконку настроек:

Изображение иконки первых настроек

Пройдите по ссылке Upload в разделе Music.

Изображение ссылки на загрузку

Нажмите Browse на странице Upload, найдите музыкальные файлы на вашем компьютере и загрузите их.

Если вы оставите ярлыки Artist и Album пустыми, Ampache будет автоматически считывать ID3 теги музыкальных файлов, чтобы определить исполнителя и название альбома. После загрузки музыкальных файлов их можно будет найти с помощью ссылок Songs, Albums или Artists в разделе Music на навигационной панели слева.

Ваш музыкальный сервер Ampache готов к потоковому воспроизведению музыки.

Заключение

В этой статье вы научились устанавливать и настраивать сервер потоковой трансляции музыки Ampache и загружать музыкальные файлы. Вы можете начать прослушивание музыки в любом месте, где бы вы не были, на любом из ваших устройств. Дополнительная информация по использованию и расширенным возможностям вашего сервера потоковой трансляции музыки находится в Документации Ampache. Эти приложения Android и эти приложения iOS можно использовать для потоковой трансляции музыки на ваш телефон. Ampache организует вашу музыку на сервере с помощью ID3 тегов в музыкальных файлах. Программа MusicMrainz поможет вам управлять ID3 тегами ваших музыкальных файлов.

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about our products

About the authors

I have been a Linux Systems Administrator and technical content creator for more than 20 years. I am passionate about using and promoting OSS.



Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
Leave a comment


This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Become a contributor for community

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

DigitalOcean Documentation

Full documentation for every DigitalOcean product.

Resources for startups and SMBs

The Wave has everything you need to know about building a business, from raising funding to marketing your product.

Get our newsletter

Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.

New accounts only. By submitting your email you agree to our Privacy Policy

The developer cloud

Scale up as you grow — whether you're running one virtual machine or ten thousand.

Get started for free

Sign up and get $200 in credit for your first 60 days with DigitalOcean.*

*This promotional offer applies to new accounts only.