Се­год­ня поч­ти ник­то не ска­чива­ет музыку для прос­лушива­ния — на сме­ну MP3-биб­лиоте­кам приш­ли стри­мин­говые сер­висы вро­де YouTube Music, Apple Music и Spotify. Они очень удоб­ные, прав­да в боль­шинс­тве сво­ем — плат­ные. А что, если запус­тить свой собс­твен­ный, пер­сональ­ный стри­мин­говый сер­вис, без або­нент­ской пла­ты и рек­ламы, зато с блек‑дже­ком и блек‑металом? Если идея тебе пон­равилась, то в этой статье я под­робно рас­ска­жу, как это сде­лать.

Ме­лома­ны зна­ют, что сос­тавлять MP3-кол­лекцию — доволь­но тру­доем­кое занятие: нуж­но най­ти сайт с музыкой, ска­чать ком­позиции (как пра­вило, заг­ружа­ется толь­ко одна ком­позиция за один раз), попытать­ся вос­про­извести, обна­ружить, что есть проб­лемы с отоб­ражени­ем ID3-тегов или с фор­матом, пре­обра­зовать эти фай­лы, что­бы их мож­но было вос­про­изво­дить в любимом про­игры­вате­ле… В общем, нуж­но пот­ратить мно­го вре­мени. Стри­минг‑сер­висы реша­ют эти проб­лемы: нашел нуж­ные ком­позиции, добавил их в плей­лист — и нас­лажда­ешь­ся вос­про­изве­дени­ем. Собс­твен­но, незачем обо всем этом рас­ска­зывать — все и так всё понима­ют. Луч­ше покажу, как соз­дать собс­твен­ный стри­минг‑сер­вис.

 

Используем готовое

Оче­вид­но, мы не будем писать собс­твен­ный сер­вис с нуля. Вмес­то это­го пред­лагаю уста­новить бес­плат­ное при­ложе­ние Sonerezh, поз­воля­ющее орга­низо­вать пол­ноцен­ный мно­гополь­зователь­ский стри­минг‑сер­вис. При­ложе­ние написа­но на PHP, а поэто­му его исходный код пол­ностью открыт. Нас­трой­ка сер­виса будет про­демонс­три­рова­на на базе Ubuntu 21.10 — пос­ледней вер­сии убун­ты на дан­ный момент.

Как обыч­но, уста­нав­лива­ем суповой набор — Apache, MySQL, PHP:

sudo apt install apache2
sudo a2enmod rewrite
sudo apt install mysql-server

Вто­рая коман­да вклю­чает mod_rewrite — что­бы ты потом не ломал голову, почему переза­пись URL не работа­ет. А вот с уста­нов­кой PHP будет слож­нее, чем обыч­но. Дело в том, что в сос­тав Ubuntu 21.10 вхо­дит PHP 8.0, но Sonerezh на этой вер­сии работать отка­зал­ся, поэто­му уста­новим сра­зу про­верен­ную вер­сию — 7.2. Пусть она и не самая новая, зато все гаран­тирован­но будет работать.

Вво­дим коман­ды:

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php –y

Ско­рее все­го, ты с ними зна­ком. А если нет, то они добав­ляют репози­торий ppa:ondrej/php, содер­жащий раз­личные вер­сии PHP. Далее уста­нав­лива­ем PHP и необ­ходимые рас­ширения:

sudo apt-get install php7.2 php7.2-mysql php7.2-intl php7.2-cli php7.2-gd php7.2-mbstring php-pear php7.2-curl php7.2-mysqlnd php7.2-mcrypt git ffmpeg

Вер­сию PHP нуж­но ука­зывать обя­затель­но, ина­че уста­новит­ся 8-я вер­сия из дефол­тно­го репози­тория Ubuntu. Пакеты git и ffmpeg, хотя и не име­ют отно­шения к PHP, при­годят­ся для нор­маль­ной работы и обновле­ния Sonerezh.

Те­перь будем все это нас­тра­ивать. Пер­вым делом нуж­но соз­дать поль­зовате­ля БД. Про­цеду­ра стан­дар­тная. Сна­чала вво­дим коман­ду

sudo mysql_secure_installation

Этот скрипт выпол­няет минималь­ную нас­трой­ку безопас­ности сер­вера БД — что­бы тебя ник­то не хак­нул. Хак­нуть все рав­но хак­нут, но так ты не поз­волишь сде­лать это пер­вому попав­шемуся школь­нику. Что отве­чать на воп­росы скрип­та, показа­но на сле­дующих скри­нах.

Безопасная настройка MySQL
Бе­зопас­ная нас­трой­ка MySQL
Безопасная настройка MySQL. Продолжение
Бе­зопас­ная нас­трой­ка MySQL. Про­дол­жение

За­тем нуж­но соз­дать базу дан­ных для Sonerezh и поль­зовате­ля для этой БД:

mysql –u root –p

Пос­ле того как уви­дишь приг­лашение mysql>, вве­ди сле­дующие коман­ды:

create database sonerezh;
create user sonerezh@localhost identified by 'Secret2022';
grant all on sonerezh.* to sonerezh@localhost;
alter user sonerezh@localhost identified with mysql_native_password by 'Secret2022';
flush privileges;
exit

Нес­коль­ко замеча­ний. Во‑пер­вых, если ты дума­ешь, что зря все это чита­ешь, пос­коль­ку в сети где‑то лежит ману­ал по нас­трой­ке Sonerezh, то нет, не зря: в нем есть ошиб­ка, свя­зан­ная с исполь­зовани­ем ста­рой вер­сии MySQL (до вер­сии 5.7). В новой вер­сии при­веден­ные в том руководс­тве опе­рато­ры работать не будут. Во‑вто­рых, здесь я задал оди­нако­вое имя для базы дан­ных и поль­зовате­ля — это необя­затель­но. Ты можешь ука­зать раз­личные име­на, как тебе будет угод­но. Пароль для нового поль­зовате­ля (Secret2022_), разуме­ется, нуж­но ука­зать дру­гой. В‑треть­их, опе­ратор alter user нужен, если у тебя MySQL 8.0 (в Ubuntu 21.10 как раз эта вер­сия), ина­че ты не смо­жешь под­клю­чить­ся к БД через PHP, сле­дова­тель­но, и Sonerezh не смо­жет это сде­лать. Это­го тоже, кста­ти, в офи­циаль­ном ману­але нет.

С MySQL все. Теперь перей­дем к Apache и PHP. Открой файл /etc/php/7.2/apache2/php.ini. Най­ди в нем дирек­тиву memory_limit и изме­ни ее таким обра­зом:

memory_limit = 256M;

С помощью это­го дей­ствия мы выделя­ем память, дос­тупную PHP-скрип­там, выпол­няемым модулем Apache. 256 Мбайт пока будет дос­таточ­но, в будущем, воз­можно, это зна­чение при­дет­ся уве­личить. Все зависит от наг­рузки на твой стри­минг‑сер­вис и раз­мера его меди­ате­ки.

Соз­дай в катало­ге /var/www/html файл info.php со сле­дующим кон­тентом:

<?php
phpinfo();
?>

Пе­реза­пус­ти «Апач»:

sudo systemctl restart apache2

От­крой бра­узер и вве­ди URL http://localhost/info.php. Если ты уви­дишь то же самое, что показа­но на скрин­шоте ниже, зна­чит, ты все сде­лал пра­виль­но. Осо­бое вни­мание уде­ли вер­сии PHP — она дол­жна быть 7.2. На вся­кий слу­чай убе­дись, что зна­чение дирек­тивы memory_limit (оно при­водит­ся в выводе скрип­та info.php) при­мени­лось.

 

Установка Sonerezh и импорт музыки

Те­перь наш сер­вер пол­ностью готов для уста­нов­ки самого стри­минг‑при­ложе­ния. Вве­ди сле­дующие коман­ды:

cd /var/www/html
sudo rm *
wget https://github.com/Sonerezh/sonerezh/releases/download/v1.2.6/sonerezh-1.2.6.zip
unzip sonerezh-1.2.6.zip

Так­же нам понадо­бит­ся пап­ка music для хра­нения музыки. Соз­дадим ее в пап­ке sonerezh, но в реаль­ном про­екте луч­ше выделить для хра­нения меди­ате­ки пап­ку за пре­дела­ми DocumentRoot:

sudo mkrdir /var/www/html/sonerezh/music

Не забыва­ем изме­нить пра­ва дос­тупа:

cd /var/www
sudo chown –R www-data:www-data *
Сервер готов к установке Sonerezh
Сер­вер готов к уста­нов­ке Sonerezh
Репозиторий клонирован
Ре­пози­торий кло­ниро­ван

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    4 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии