著者は、 Open Internet / Free Speech Fund を選択して、 Write forDOnationsプログラムの一環として寄付を受け取りました。

序章

Ampache は、独自のサーバーでデジタル音楽コレクションをホストおよび管理できるオープンソースの音楽ストリーミングサーバーです。 Ampacheは、音楽をコンピューター、スマートフォン、タブレット、またはスマートTVにストリーミングできます。 これは、音楽を聴くために使用するデバイスに音楽の複数のコピーを保持する必要がないことを意味します。 Ampacheを使用すると、AmpacheのWebインターフェイスを使用してサーバー上のコレクションを管理し、どこでもそれを聞くことができます。

このチュートリアルでは、Ampacheインスタンスを提供するApacheWebサーバーとPHPをインストールして構成します。 次に、Ampacheがすべての運用情報を保存するために使用するMySQLデータベースを作成します。 最後に、音楽コレクションをアップロードして、音楽のストリーミングを開始できるようにします。

前提条件

このガイドを開始する前に、次のものが必要です。

  • Ubuntu 18.04 チュートリアルを使用した初期サーバーセットアップ(root以外のsudoユーザーを含む)に従ってセットアップされた1つのUbuntu18.04サーバー。
  • Ubuntu 18.04 にLinux、Apache、MySQL、PHP(LAMP)スタックをインストールする方法に示されているように、サーバーにインストールされているApache、MySQL、およびPHP。
  • サーバーを指すように構成されたドメイン名。 ドメインとDNSガイドを参照して、ドメインをDigitalOceanドロップレットにポイントする方法を学ぶことができます。

ステップ1—Ampacheのインストール

この手順では、Ampache ZIPアーカイブをサーバーにダウンロードし、インストールホームディレクトリに解凍して、必要なファイルシステムの変更を行います。

まず、root以外のユーザーとしてサーバーにログインします。 次に、次のコマンドを使用してAmpacheのホームディレクトリを作成します。

  1. sudo mkdir /var/www/ampache

次に、Ampacheアーカイブを解凍するために必要なzipユーティリティをインストールします。

  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

次に、-dオプションを使用して、ZIPアーカイブを/var/www/ampache/ディレクトリに解凍します。

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

次に、ApacheがAmpacheインスタンスファイルを読み取り、書き込み、実行できるように、AmpacheのファイルのユーザーIDとグループIDを設定します。

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

--recursiveオプションを使用すると、chown/var/www/ampache/の下のすべてのファイルとサブディレクトリの所有権とグループIDをApacheのユーザーとグループwww-dataに変更します。

次に、ZIPアーカイブに含まれている.htaccessファイルの名前を変更します。 .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のインストールディレクトリの外に作成するのが最適です。 そうすれば、AmpacheのDocumentRootの外部にあるため、悪意のあるWebリクエストによって読み取りまたは変更されることはありません。

次のコマンドを使用して、ディレクトリ/data/Musicを作成します。

  1. sudo mkdir -p /data/Music

次に、所有者とグループIDを変更して、Apacheが読み取りと書き込みを行えるようにします。

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

セットアップを完了するには、 FFmpeg をインストールします。これは、オーディオとビデオをある形式から別の形式に変換するユーティリティです。 たとえば、MP3音楽ファイルをOPUS音楽ファイルに変換するために使用できます。 AmpacheはFFmpegを使用して、オーディオをアップロードされた形式からリスニングデバイスが再生できる形式にオンザフライで変換します。 これは、トランスコーディングとして知られるプロセスです。

すべてのデバイスがすべての形式の音楽を再生できるわけではないため、これは便利です。 Ampacheは、再生デバイスでサポートされている形式を検出し、サポートされている形式で音楽を自動的に提供できます。

次のコマンドでFFmpegをインストールします。

  1. sudo apt install ffmpeg

これで、Ampacheインスタンスを解凍してWebインストーラー用に準備し、FFmpegユーティリティをインストールしました。 次に、Ampacheインスタンスを提供するようにApacheとPHPを構成します。

ステップ2—ApacheとPHPの設定

このセクションでは、新しい VirtualHost ファイルを作成してApacheを構成します。このファイルは、ApacheがAmpacheサーバードメインにサービスを提供するために必要な構成を提供します。 また、Ampacheの要件をカバーするためにPHPの機能を拡張するいくつかの追加のPHPモジュールをインストールします

まず、デフォルトの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形式のテキストファイルを読み取って操作できるようにします。

次に、a2enmodユーティリティを使用していくつかのApacheモジュールを有効にします。

  1. sudo a2enmod rewrite expires

これらのApacheモジュールにより、Apacheは次のことを実行できます。

  • rewrite —Ampacheが提供するルールに従ってURLを変更または書き換えます。
  • expires —画像などのオブジェクトのキャッシュ有効期限を設定して、ブラウザがより効率的に保存できるようにします。

次に、ApacheにAmpacheインスタンスをロードする方法と場所を指示するVirtualHostファイルを作成します。

注:「Ubuntu18.04にLinux、Apache、MySQL、PHP(LAMP)スタックをインストールする方法」ガイドに従って、Ampacheドメイン名を使用するテストVirtualHostファイルを作成した場合無効にする必要があります。 a2dissiteユーティリティを使用して、以下を無効にします。

  1. sudo a2dissite test_virtalhost_file

次に、/etc/apache2/sites-available/ampache.confのテキストエディタでVirtualHostファイルを作成して開きます。

  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インスタンスが配置されているサーバー上のファイルシステムの場所。 これは、手順1でZIPアーカイブを解凍した場所と同じ場所です。
  • Directory —このセクションは、パスに含まれるファイルとディレクトリに適用される構成をApacheに渡します。
  • RewriteEngine —Apacheモジュールの書き換えを有効にします。
  • CustomLog —ApacheがAmpacheサーバーのすべてのアクセスログを記録するために使用するログファイルを作成します。
  • ErrorLog —ApacheがAmpacheサーバーによって生成されたすべてのエラーログを記録するために使用するログファイルを作成します。

次に、作成したVirtualHostファイルにapachectlユーティリティでエラーがないことを確認します。

  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

次に、/etc/apache2/apache2.confでApacheのメイン構成ファイルを編集し、次の行を追加する必要があります。

ServerName your_domain

次に、a2ensiteユーティリティを使用して、新しいVirtualHost構成を有効にします。

  1. sudo a2ensite ampache

最終的な構成はオプションですが、お勧めします。 PHPでのファイルアップロードのデフォルト設定では、2MBを超えるファイルはアップロードできません。 音楽ファイルはこれよりも大きくなる傾向があるため、このサイズを大きくすると、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
. . .

これで、最大100MBの音楽ファイルをアップロードできるようになります。 このサイズよりも大きいファイルをアップロードする場合は、より大きな値を使用してください。 ファイルを保存して終了します。

最後に、更新したApache構成をリロードします。

  1. sudo systemctl reload apache2.service

これで、ApacheをHTTP経由でAmpacheに提供するように構成しました。 次に、TLS証明書を取得し、それを使用するようにApacheを構成して、HTTPS経由でAmpacheに安全にアクセスできるようにします。

ステップ3—HTTPSを有効にする

このステップでは、HTTPSブラウジングを有効にする Certbot ユーティリティを使用して、無料の Let’s EncryptTLS証明書を取得します。 Certbotは証明書を作成し、必要なApache構成を自動的に生成し、証明書の自動更新を管理します。

Ampacheにログインするたびに、ユーザー名とパスワードがインターネット経由で送信されるため、これは重要です。 HTTPSを使用していない場合、パスワードはプレーンテキストで送信され、インターネット上を移動するときに読み取ることができます。

UbuntuのLTSリリースには最新のパッケージがない傾向があり、これはCertbotプログラムにも当てはまります。 Certbot開発者は、 PPA と呼ばれる専用のUbuntuリポジトリを維持しているため、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オプションは、CertbotがApacheを自動的に読み取って構成できるようにするApacheプラグインを使用します。 -d 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はHTTPおよびHTTPSを介してAmpacheを提供します。
  • 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データベースを使用して、プレイリスト、ユーザー設定などの情報を保存します。 このステップでは、Ampacheがデータベースにアクセスするために使用するデータベースとMySQLユーザーを作成します。

Ampacheのデータベースを作成するための次の手順を完了するには、3つの情報を選択する必要があります。

  1. ampache_database:Ampacheデータベースの名前。
  2. database_user:Ampacheがデータベースへのアクセスに使用するMySQLユーザー。 これはシステムユーザーではなく、データベースにのみアクセスできます。
  3. database_password:データベースユーザーのパスワード。 必ず安全なパスワードを選択してください。

後で必要になるので、これらの詳細をメモしてください。

まず、mysqlコマンドを使用してインタラクティブなMySQLシェルを開きます。

  1. mysql --user=root --password

--user=rootはMySQLシェルをMySQLrootユーザーとして開き、--passwordはrootユーザーのパスワードの入力を求めます。

次のコマンドは、空のデータベースを作成します。

  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)

exit;と入力して、MySQLシェルを終了します。

最後に、database_userを使用してMySQLシェルにログインして、データベース、ユーザー名、およびパスワードをテストします。

次のコマンドを入力して、新しいユーザーとしてMySQLシェルにログインします。

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

これで、Ampacheが使用するデータベースが作成されました。 サーバーの構成が完了し、Webインストーラーを使用してインストールを完了する準備ができました。

ステップ5—Webインストーラーの使用

このステップでは、AmpacheのWebインストーラーを使用して、Webインターフェイス管理ユーザー、データベースの詳細、その他の設定など、実行に必要な情報をAmpacheに提供してインストールを完了します。

ブラウザにhttps://your_domainと入力して、Webインストールを開始します。

インストール言語を選択してください

Ampacheのインターフェース言語を選択し、 StartConfigurationボタンをクリックして続行します。

要件

このページでは、Ampacheがサーバーが要件を満たしていることを確認します。 このページの各行は、インストーラーが実行するテストを表しており、たとえば、必要なすべてのPHPモジュールが存在して機能していることを確認します。 すべてのテストに、サーバーがAmpacheの準備ができていることを示す緑色のチェックマークが付いていることがわかります。

続行ボタンをクリックして、次のページに進みます。

Ampacheデータベースを挿入する

このページでは、Ampacheのデータベースが存在しない場合は作成し、フォーマットします。 次のようにフィールドに入力します。

  • 目的のデータベース名ampache_database
  • MySQLホスト名localhost
  • MySQLポート(オプション)
  • MySQL管理ユーザー名database_user
  • MySQL管理パスワードdatabase_password
  • データベースの作成
  • テーブルの作成(ampache.sql)
  • データベースユーザーの作成

データベースの挿入ボタンをクリックして続行します。

構成ファイルの生成

このページでは、Ampacheが実行に使用する構成ファイルを作成します。 次のようにフィールドに入力します。

  • Webパス

  • データベース名ampache_database

  • MySQLホスト名localhost

  • MySQLポート(オプション)

  • MySQLユーザー名database_user

  • MySQLパスワードdatabase_password

  • インストールタイプデフォルト設定のままにします。

  • トランスコーディングを許可するドロップダウンリストからffmpegを選択します。

  • Playersこれらはデフォルト設定のままにしておきます。

構成の作成ボタンをクリックして続行します。

管理者アカウントを作成する

このページは、最初のWebインターフェイスユーザーを作成します。 このユーザーは、完全な管理者権限で作成されており、初めてログインしてAmpacheを構成するために使用するユーザーです。

ユーザー名と安全なパスワードを選択し、パスワードフィールドとパスワードの確認フィールドに入力します。

アカウントの作成ボタンをクリックして続行します。

Ampacheアップデート

このページでは、Ampacheのデータベースに対して行う必要のある管理上の変更を実行します。 これらの変更はバージョンのアップグレード中に行われますが、これは新規インストールであるため、インストーラーは変更を加えません。

今すぐ更新!ボタンをクリックして続行します。

Ampacheアップデート

このページは、インストーラーが前のステップで行った更新を印刷して説明します。 更新がリストされていないはずです。

[メインページに戻る]リンクをクリックして、ログインページに進みます。 Ampacheサーバーにログインするために設定したユーザー名とパスワードを入力します。

Ampacheは完全にセットアップされておらず、使用する準備ができていません。 これで、音楽を追加してセットアップを完了し、新しいAmpacheサーバーの使用を開始できるようになります。

ステップ6—音楽をAmpacheに追加する

音楽サーバーは、再生する音楽がないと役に立ちません。 このステップでは、音楽カタログを構成し、いくつかの音楽をアップロードします。 「カタログ」は、Ampacheが音楽のコレクションに付けた名前です。 Ampacheは、サーバーの内外で多くのソースから音楽を読み取ることができますが、このチュートリアルでは、Ampacheが参照しているように、サーバーのローカルカタログに音楽をアップロードして保存します。

まず、Ampacheにログインしたときに表示される最初のページの次の行にあるカタログの追加リンクをクリックします。

カタログはまだ構成されていません。 メディアのストリーミングを開始するには、カタログを追加する必要があります。

カタログの追加ページに移動します。 次のようにフィールドに入力します。

  • カタログ名: Give this catalog a short, memorable name.
  • カタログタイプ: local
  • ファイル名パターン:
  • フォルダパターン:これはデフォルトのままにしておきます。
  • アートを集める:
  • プレイリストファイルからプレイリストを作成します。 (m3u、m3u8、asx、pls、xspf):
  • 道: /data/Music

カタログの追加ボタンをクリックして、このページを完成させてください。

次のページで、続行ボタンをクリックします。 これにより、カタログの表示ページに移動し、作成したカタログの詳細が印刷されます。 カタログ設定は、将来いつでも変更できます。

次に、3番目のナビゲーションアイコンをクリックして拡張設定を開き、AmpacheのWebアップロード機能を有効にします。

Server Config セクションまで下にスクロールし、Systemリンクをクリックしてシステム設定ページを開きます。

ユーザーのアップロードを許可する行を見つけて、[値]列のドロップダウンメニューから有効にするを選択します。

また、音楽ファイルをアップロードできるユーザーのレベルを選択することもできます。 デフォルトのレベルはCatalogManager です。これにより、 CatalogManagerおよびより大きな権限を持つすべてのユーザーが音楽をアップロードできるようになります。 この場合、それは管理者です。

また、音楽が追加されるカタログを設定する必要があります。 宛先カタログ行を使用してこれを設定します。 ドロップダウンで作成したカタログを選択します。

ページ下部の[設定の更新]ボタンをクリックして、設定を完了します。 これで、音楽をアップロードする準備が整いました。

まず、最初の設定アイコンをクリックします。

次に、音楽セクションのアップロードリンクをクリックします。

アップロードページで、参照ボタンをクリックし、コンピューター上の音楽ファイルを見つけてアップロードします。

ArtistおよびAlbumラベルを空白のままにすると、Ampacheは音楽ファイルの ID3 タグを読み取り、アーティストとアルバムを自動的に検出します。 いくつかの音楽をアップロードした後、音楽[左側のナビゲーションパネルのセクション。

これで、Ampacheミュージックサーバーで音楽のストリーミングを開始する準備が整いました。

結論

この記事では、Ampache音楽ストリーミングサーバーをインストールして構成し、音楽の一部をアップロードしました。 これで、どのデバイスでもどこにいても音楽を聴くことができます。 Ampacheのドキュメントは、ストリーミングサーバーの使用と拡張に役立ちます。 これらのAndroidアプリとこのiOSアプリはあなたの音楽をあなたの携帯電話にストリーミングします。 Ampacheは、音楽ファイルのID3タグを使用して、サーバー上の音楽を整理します。 MusicMrainz プログラムは、音楽ファイルのID3タグを管理するのに役立ちます。