Koelは、クライアント側でVue.js、サーバー側でLaravelで記述されたWebベースのパーソナルオーディオストリーミングアプリです。このチュートリアルでは、Ubuntu18.04ベースのサーバーにKoelをインストールする方法について説明します。
前提条件
-
Ubuntu18.04を実行しているサーバー。
-
ルート以外のsudoユーザー。
-
すべてが更新されていることを確認してください。
$ sudo apt update &&sudo apt upgrade
-
システムに必要なパッケージはほとんどありません。
$ sudo apt install ca-certificates curl unzip build-essential libpng-dev gnupg2 lsb-release ufw -y
これらのパッケージの一部は、システムにすでにインストールされている可能性があります。
ファイアウォールの構成
最初のステップは、ファイアウォールを構成することです。ファイアウォールを有効にする前に、SSHポートを許可する必要があります。許可しないと、サーバーからロックアウトされます。
$ sudo ufw allow OpenSSH
ファイアウォールを有効にします。
$ sudo ufw enable
HTTPおよびHTTPSポートを許可します。
$ sudo ufw allow http
$ sudo ufw allow https
ファイアウォールのステータスを確認してください。
$ sudo ufw status
同様の出力が表示されるはずです。
<前>ステータス:にアクション/> - ------ ----
OpenSSHを認めどこ
80 / tcpのどこでも443 />
のOpenSSH(V6)を許可どこでも(V6)
80 / TCP(V6)はどこでも(V6)
443 / TCP(V6)はどこでも(V6)プレALLOW ALLOW ALLOW>>
Gitのインストール
まず、Gitをインストールします。
$ sudo apt install git -y
$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"
Node.jsをインストール
Koelはノード12と互換性のない古いライブラリをパッケージ化しているため、最新の12.xではなくノード10.xをインストールします。
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash-
sudo apt install -y nodejs
ノードが正しくインストールされているかどうかを確認してください。
$ node --version
同様の出力が表示されるはずです。
v10.17.0
ヤーンのインストール
Yarnパッケージマネージャーをインストールします。
$ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add-
$ echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
$ sudo apt update &&sudo apt install -yyarn
糸が正しく機能しているかどうかを確認します。
$ヤーン--バージョン
同様の出力が表示されるはずです。
1.19.1
PHPのインストール
必要なすべての拡張機能を備えたPHP7.2をインストールします。
$ sudo apt install -y php7.2-fpm php7.2-mbstring php7.2-bcmath php7.2-xml php7.2-mysql php7.2-curl php7.2-zip
PHPが正しく機能しているかどうかを確認します。
$ php --version
同様の出力が表示されるはずです。
PHP 7.2.24-1 + ubuntu18.04.1 + deb.sury.org + 1(cli)(ビルド:2019年10月24日18:29:11)(NTS)
著作権(c)1997-2018 PHPグループ
ZendEngine v3.2.0、Copyright(c)1998-2018 Zend Technologies
with Zend OPcache v7.2.24-1 + ubuntu18.04.1 + deb.sury.org + 1、Copyright(c )1999-2018、ZendTechnologiesによる
MariaDBのインストール
MariaDBはMySQLのドロップイン代替品です。つまり、MariaDBを実行および操作するコマンドはMySQLのコマンドと同じです。 MariaDBをインストールするには、次のコマンドを発行します。
$ sudo apt install mariadb-server
MariaDBが正しくインストールされているかどうかを確認してください。
$ mysql --version
次の出力が表示されます。
mysql Ver 15.1 Distrib 10.1.41-MariaDB、readline 5.2を使用したdebian-linux-gnu(x86_64)用
次のコマンドを実行して、rootパスワードの指定、匿名ユーザーの削除、rootログインのリモートでの禁止、テストテーブルの削除などのデフォルト設定を実行します。 はいと入力します すべてに対して、rootパスワードを設定します。
$ sudo mysql_secure_installation
ルートパスワードの設定には注意が必要です。 MariaDBはデフォルトで、システムrootユーザーがパスワードなしでMariaDBにログインできるようにします。ただし、サードパーティのアプリケーションを使用してroot経由でアクセスする場合は、パスワードが必須です。そうしないと、PHPMyAdminなどのアプリが失敗します。このためには、MariaDBのデフォルトオプションであるプラグインベースの認証を無効にする必要があります。
プラグイン認証を無効にしてルートパスワードを復元するには、最初に次のコマンドを使用してMySQLプロンプトを入力します。
$ sudo mysql -u root
次に、次のコマンドを入力して、プラグイン認証を無効にします。
use mysql;
update user set plugin ='' where User ='root';
flush特権;
exit
この後、MariaDBサービスを再起動します。
$ sudo systemctl restart mariadb.service
それでおしまい。次回MySQLにログインするときは、次のコマンドを使用します
$ sudo mysql -u root -p
プロンプトが表示されたら、rootパスワードを入力します。
Koel用にMariaDBを構成する
次に、Koelアプリケーションで使用するデータベースを設定する必要があります。これを行うには、MySQLプロンプトにログインします。チュートリアルの残りの部分では、MariaDBのデフォルトの認証方法を使用している(つまり、rootパスワードを使用していない)と想定します。
$ sudo mysql -u root
プロンプトが表示されたら、次のコマンドを入力して、 koelmusicという名前のデータベースをセットアップします。 およびkoeluserという名前のデータベースユーザー データベースへのアクセスを許可します。
mysql> CREATE DATABASE koelmusic;
mysql> CREATE USER'koeluser' @'localhost' IDENTIFIED BY'yourpassword';
mysql>GRANT ALL PRIVILEGESONkoelmusic。*TO'koeluser'@'localhost ';
mysql> FLUSH PRIVILEGES;
mysql> exit
Nginxをインストール
Nginxサーバーをインストールします。
$ sudo apt install nginx
正しく機能しているかどうかを確認します。
$ nginx -v
次の出力が表示されます。
nginxバージョン:nginx / 1.14.0(Ubuntu)
次のコマンドを実行して、Koelの構成ファイルを追加します。
$ sudo nano /etc/nginx/sites-available/koel.conf
次のコードをエディターに貼り付けます。
server {
listen *:80;
server_name koel.example.com;
root / var / www / koel;
index index.php;
gzip on;
gzip_types text / plain text / css application / x-javascript text / xml application / xml application / xml + rss text / javascript application / json;
gzip_comp_level 9;
#index.php、robots.txt、およびいくつかの特別なルートのみをホワイトリストに登録
if($ request_uri!〜^ / $ | index \ .php | robots \ .txt |(public | api) / | remote | api-docs | sw \ .js){
return 404;
}
location / media / {
internal;
エイリアス$upstream_http_x_media_root;
access_log /var/log/nginx/koel.access.log;
error_log /var/log/nginx/koel.error.log;
}
location / {
try_files $ uri $ uri / /index.php?$args;
}
location〜 \ .php $ {
try_files $ uri $ uri / /index.php?$args;
fastcgi_param PATH_INFO $ fastcgi_pat h_info;
fastcgi_param PATH_TRANSLATED $ document_root $ fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name;
fastcgi_pass unix:/var/run/php/php7.2-fp fastcgi_index index.php;
fastcgi_split_path_info ^(。+ \。php)(/.+)$;
fastcgi_intercept_errors on;
include fastcgi_params;
}
}
このファイルは、Koelをドメインkoel.example.com
にインストールすることを前提としています。 およびディレクトリ/var/www/koel
。
この構成ファイルをsites-enabled
にリンクして、アクティブ化します。 ディレクトリ。
$ sudo ln -s /etc/nginx/sites-available/koel.conf /etc/nginx/sites-enabled/
構成をテストします。
$ sudo nginx -t
構成が正しいことを示す次の出力が表示されます。
nginx:構成ファイル/etc/nginx/nginx.confの構文は問題ありません
nginx:構成ファイル/etc/nginx/nginx.confテストは成功しました
Nginxサービスをリロードします。
$ sudo systemctl reload nginx
Composerのインストール
これは、インストールに進む前に必要な最後のことです。
次のコマンドを入力してComposerをインストールします。
$ php -r "copy('https://getcomposer.org/installer'、'composer-setup.php');"
$ php composer-setup.php
$ php- r "unlink('composer-setup.php');"
$ sudo mv composer.phar / usr / local / bin / composer
正しく機能しているかどうかを確認します。
$ composer --version
次の出力が表示されます。
作曲家バージョン1.9.12019-11-0117:20:17
Koelのインストール
Koelの空のドキュメントルートフォルダを作成します。
$ sudo mkdir -p / var / www / koel
-p 引数は、親ディレクトリがvar
であることを確認します およびwww
存在しない場合は自動的に作成されます。
ドキュメントのルートフォルダに移動します。
$ cd / var / www / koel
ドキュメントルートの所有権をuser
に変更します これは、チュートリアルで使用したroot以外のユーザーです。
$ sudo chown -R user:user / var / www / koel
Koel Gitリポジトリのクローンを作成し、最新バージョンをチェックアウトします。最新バージョンはリリースページから確認できます。
$ git clone--recurse-submoduleshttps://github.com/phanan/koel.git。
$ git checkout v4.1.1
依存関係をインストールします。
$composerインストール
次のコマンドを実行して、データベースと管理者アカウントを設定します。 mysqlと入力します データベースタイプとして、ポートをスキップし、上記で作成したデータベースクレデンシャルを入力します。メディアフォルダには、/home/user/songs
のように入力できます。 。
$ php artisan koel:init
ドキュメントルートフォルダの所有権をwww-data
に戻します ユーザー。
$ sudo chown -R www-data:www-data / var / www / koel
これでセットアップは完了です。 koel.example.com
を開きます ブラウザで、上記で作成した資格情報を使用してログインし、ストリーミングを開始します。 Koelのウェブサイトにはモバイルからもアクセスできます。
Koelの構成
.env
を編集して構成できる詳細があります。 次のコマンドでファイルします。
$ sudo nano /var/www/koel/.env
ここでは、SMTPの詳細を入力したり、Koel用にYoutubeとLast.fmを構成したり、さらに多くのことを実行したりできます。
Nginxサーバーをリロードして変更を実装します。
管理者パスワードをリセットする場合は、次のコマンドを発行してリセットできます。
$ php artisan koel:admin:change-password
メディアライブラリをスキャンして更新されたファイルを探す場合は、次のコマンドで実行できます。
$ php artisan koel:sync
次の出力が表示されます。
Koelの同期が開始されました。
953/953[????????????????????????????] 100%
完了しました! 944個の新規または更新された曲、0個の変更されていない曲、および9個の無効なファイル。
コマンドに-vを付けます 同期エラーなどの詳細を提供するフラグ。
たとえば、このコマンドをcronジョブとして設定して、毎晩深夜に実行することもできます。これを行うには、次のコマンドを実行します。
$ crontab -e
1( nano )を選択します )エディタとして。
ファイルの最後に次の行を貼り付けます。
0 0 * * * cd / var / www / koel &&/ usr / bin / php artisan koel:sync> / dev / null 2>&1
Ctrl + Xを押してファイルを保存します Yと入力します プロンプトが表示されたら。これで、メディアライブラリは毎晩深夜に同期されます。
詳細については、Koelの公式ドキュメントを参照してください。
Let'sEncryptを使用したHTTPSの設定
Let's Encryptを使用するには、 Certbotをインストールする必要があります パッケージ。
リポジトリを追加します。
$ sudo add-apt-repository ppa:certbot / certbot
Certbotをインストールします。
$ sudo apt install python-certbot-nginx
証明書をインストールします。
$ sudo certbot --nginx -d koel.example.com
このサーバーでこのツールを初めて使用する場合は、利用規約に同意し、メールアドレスを入力する必要があります。 いいえと言います メールをEFF財団と共有するかどうか尋ねられたとき。
それが成功した場合は、certbot
HTTPS設定をどのように構成するかを尋ねられます。
HTTPトラフィックをHTTPSにリダイレクトして、HTTPアクセスを削除するかどうかを選択してください。
--------------------------- -------------------------------------------------- -
1:リダイレクトなし-Webサーバーの構成にそれ以上の変更を加えません。
2:リダイレクト-すべてのリクエストを安全なHTTPSアクセスにリダイレクトします。
新しいサイトの場合、またはサイトがHTTPSで動作することが確実な場合は、これを選択してください。この変更は、Webサーバーの構成を編集することで元に戻すことができます。
------------------------------ -------------------------------------------------
適切な番号[1-2]を選択してから[Enter]を選択します(キャンセルするには「c」を押します):
2を選択し、ENTER
を押します 。これで、証明書がインストールされ、アクティブ化されました。証明書は90日以内に自動更新されます。
結論
これでチュートリアルは終了です。サーバーから心ゆくまでメディアをストリーミングできます。