Sonerezhは、PHPおよびHTML5で記述された自己ホスト型のWebベースの音楽ストリーミングサーバーです。 Javaで記述されたSubsonicと比較して軽量です。 Sonerezhはオープンソースソフトウェアであり、AGPLの条件の下で配布されています。このチュートリアルでは、ApacheまたはNginxを使用してUbuntu16.04にSonerezhをインストールする方法を説明します。
Sonerezhの機能:
- モダンで使いやすいWebインターフェイス
- プレイリスト管理:プレイリストにタイトル、アルバム、アーティストを追加します。
- ユーザー管理システムを介して音楽を共有する
- メタデータの自動抽出とファイルのインポート
- mp3への自動トランスコード
- シンプルな検索エンジン
Sonerezhを使用すると、Webブラウザとインターネット接続を使用してどこからでも音楽を聴くことができます。
このチュートリアルに従うには、Ubuntu16.04にLAMPまたはLEMPがインストールされている必要があります。まだ行っていない場合は、次のチュートリアルを確認してください。
- Ubuntu 16.04にLAMP(Apache、MariaDB、PHP7)をインストールする方法
- Ubuntu 16.04にLEMP(Nginx、MariaDB、PHP7-FPM)をインストールする方法
LAMPまたはLEMPをインストールしたら、ここに戻って読み進めてください。
Ubuntu16.04へのSonerezhのインストール
最新の安定バージョンは、2016年12月19日にリリースされたSonerezh1.1.3です。GithubリポジトリからGitを使用してダウンロードできます。
ディレクトリを/var/www/
に変更します 。
cd /var/www/
git
をインストールします gitを使用してGithubからSonerezhのクローンを作成します。
sudo apt install git sudo git clone --branch master https://github.com/Sonerezh/sonerezh.git
Webサーバーを設定します(www-data
)新しいディレクトリの所有者として。
sudo chown www-data:www-data /var/www/sonerezh/ -R
Sonerezh用のMariaDB/MySQLデータベースを作成する
次のコマンドを使用して、MariaDB/MySQLデータベースサーバーにログインします。
mysql -u root -p
次に、Sonerezhのデータベースを作成します。このチュートリアルでは、データベースにsonerezh
という名前を付けます 。好きな名前を使用できます。
create database sonerezh;
データベースユーザーを作成し、このユーザーにsonerezhデータベースに対するすべての権限を付与します。 your-password
を置き換えます ご希望のパスワードを使用してください。
grant all privileges on sonerezh.* to sonerezh@localhost identified by 'your-password';
特権をフラッシュして終了します。
flush privileges; exit;
Apache仮想ホストの設定
sonerezh.conf
を作成します /etc/apache2/sites-available/
のファイル ディレクトリ。
sudo nano /etc/apache2/sites-available/sonerezh.conf
次の行をコピーしてファイルに貼り付けます。赤いテキストをご希望のドメイン名に置き換えてください。また、ドメイン名のAレコードを作成する必要があります。ホームサーバーにSonerezhをインストールする場合は、ルーターでポート転送を構成する必要もあります。
<VirtualHost *:80> ServerName music.your-domain.com DocumentRoot /var/www/sonerezh <Directory /var/www/sonerezh> Options -Indexes AllowOverride All # Apache 2.2.x <IfModule !mod_authz_core.c> Order Allow,Deny Allow from all </IfModule> # Apache 2.4.x <IfModule mod_authz_core.c> Require all granted </IfModule> </Directory> CustomLog /var/log/apache2/sonerezh-access.log "Combined" ErrorLog /var/log/apache2/sonerezh-error.log </VirtualHost>
ファイルを保存して閉じます。
sudo a2ensite sonerezh.conf
次に、mod_rewriteモジュールを有効にし、Apacheウェブサーバーをリロードして変更を有効にします。
sudo a2enmod rewrite sudo systemctl reload apache2
次に、music.your-domain.com/install
にアクセスします 。いくつかの要件をリストしたSonerezhWebインストーラーが表示されます。これらの要件を満たすには、次のコマンドを実行します。
sudo apt install php7.0-gd libav-tools
HTTPS(Apache)の有効化
インストールを完了するには、データベースの詳細を入力し、管理者アカウントを作成する必要があります。ただし、その前に、Let’s Encryptから無料のTLS証明書をインストールして、Webインストーラーに入力した内容が盗聴されないようにします。
certbot(Let’s Encrypt)クライアントをインストールします。
sudo apt install letsencrypt python-letsencrypt-apache
次に、次のコマンドを発行して、無料のTLS/SSL証明書を取得します。赤い色のテキストを実際のデータに置き換えます。
sudo letsencrypt --apache --agree-tos --redirect --hsts --email your-email-address -d music.your-domain.com
説明:
- –apache :Apacheプラグインを使用して、証明書を自動的に取得してインストールします。
- –同意する :利用規約に同意します。
- –リダイレクト :すべてのHTTPトラフィックを仮想ホストのHTTPSにリダイレクトします
- –hsts :ブラウザに常にTLSを使用するように強制します。
数秒以内に次のように表示されます。これは、無料のTLS / SSL証明書が取得され、Apacheサーバーにインストールされていることを意味します。
デフォルトのTLS/SSL構成は、SSLラボテストでA+を獲得します。
Nginxサーバーブロックの設定
Apacheの代わりにNginxを使用する場合は、Nginxサーバーブロックファイルを作成します。
sudo nano /etc/nginx/conf.d/sonerezh.conf
次の行をコピーしてファイルに貼り付けます。赤いテキストをご希望のドメイン名に置き換えてください。また、ドメイン名のAレコードを作成する必要があります。ホームサーバーにSonerezhをインストールする場合は、ルーターでポート転送を構成する必要もあります。
server { listen 80; server_name music.your-domain.com; root /var/www/sonerezh/app/webroot; index index.php; location / { try_files $uri $uri/ /index.php?$args; expires 14d; add_header Cache-Control 'public'; } # The section below handle the thumbnails cache, on the client (browser) # side (optional but recommended) location ~* /([^/]+_[0-9]+x[0-9]+(@[0-9]+x)?\.[a-z]+)$ { try_files /img/resized/$1 /index.php?$args; add_header Cache-Control 'public'; expires 14d; access_log off; } location ~ \.php$ { try_files $uri =404; fastcgi_index index.php; fastcgi_pass unix:/run/php/php7.0-fpm.sock; include fastcgi.conf; # If fastcgi.conf is not available on your platform you may want to # uncomment the following line #fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
ファイルを保存して閉じます。次に、構成をテストします。
sudo nginx -t
テストが成功した場合は、Nginxをリロードします。
sudo systemctl reload nginx
次に、music.your-domain.com/install
にアクセスします 。いくつかの要件をリストしたSonerezhWebインストーラーが表示されます。これらの要件を満たすには、次のコマンドを実行します。
sudo apt install php7.0-gd libav-tools
HTTPS(Nginx)の有効化
インストールを完了するには、データベースの詳細を入力し、管理者アカウントを作成する必要があります。ただし、その前に、Let’s Encryptから無料のTLS証明書をインストールして、Webインストーラーに入力した内容が盗聴されないようにします。
certbot(Let’s Encrypt)クライアントをインストールします。
sudo apt install letsencrypt
次に、次のコマンドを発行して、無料のTLS/SSL証明書を取得します。赤い色のテキストを実際のデータに置き換えます。
sudo letsencrypt certonly --webroot --agree-tos --email your-email-address -d music.your-domain.com -w /var/www/sonerezh/app/webroot/
数秒以内に次のように表示されます。これは、無料のTLS/SSL証明書が取得されたことを意味します。
次に、Sonerezhサーバーブロックファイルを編集してTLSを構成します。
sudo nano /etc/nginx/conf.d/sonerezh.conf
構成を次のように変更します。
server { listen 80; server_name music.your-domain.com; return 301 https://$server_name$request_uri; } server { listen 443 ssl http2; server_name music.your-domain.com; root /var/www/sonerezh/app/webroot; ssl_certificate /etc/letsencrypt/live/music.your-domain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/music.your-domain.com/privkey.pem; ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; ssl_session_tickets off; # modern configuration. tweak to your needs. ssl_protocols TLSv1.2; ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256'; ssl_prefer_server_ciphers on; # HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months) add_header Strict-Transport-Security max-age=15768000; # OCSP Stapling --- # fetch OCSP records from URL in ssl_certificate and cache them ssl_stapling on; ssl_stapling_verify on; index index.php; location / { try_files $uri $uri/ /index.php?$args; expires 14d; add_header Cache-Control 'public'; } # The section below handle the thumbnails cache, on the client (browser) # side (optional but recommended) location ~* /([^/]+_[0-9]+x[0-9]+(@[0-9]+x)?\.[a-z]+)$ { try_files /img/resized/$1 /index.php?$args; add_header Cache-Control 'public'; expires 14d; access_log off; } location ~ \.php$ { try_files $uri =404; fastcgi_index index.php; fastcgi_pass unix:/run/php/php7.0-fpm.sock; include fastcgi.conf; # If fastcgi.conf is not available on your platform you may want to # uncomment the following line #fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
ファイルを保存して閉じます。次に、構成をテストします。
sudo nginx -t
テストが成功した場合は、Nginxをリロードします。
sudo systemctl reload nginx
インストールを完了します
これで接続がHTTPS対応になり、Webインストーラーでデータベースの詳細を入力できます。また、管理者アカウントを作成し、音楽フォルダを指定します。
SonerezhWebベースの音楽ストリーミングサーバー
証明書の自動更新
Let's Encrypt証明書を自動的に更新するには、rootユーザーのcrontabファイルを編集します。
sudo crontab -e
ファイルの最後に次の行を追加します。
@daily letsencrypt renew --quiet && systemctl reload apache2
Nginxを使用する場合は、apache2をnginxに置き換えます。
@daily letsencrypt renew --quiet && systemctl reload nginx
Webサーバーが新しい証明書を取得するには、リロードが必要です。
それでおしまい!このチュートリアルが、ApacheまたはNginxを使用してUbuntu16.04にSonerezh音楽ストリーミングサーバーをインストールするのに役立つことを願っています。 Subsonic音楽ストリーミングサーバーのインストール方法も確認してください。