音楽を再生出来るOSS 「koel」をインストールしてみた

· 5 min read
音楽を再生出来るOSS 「koel」をインストールしてみた



Laravel製のOSSミュージック ストリーミング サーバー「koel」
音楽を再生出来るOSS ( オープンソース ) パッケージで
PHPのLaravelフレームワーク ( 5.1 LTS ) で作られています。

ちょっとおもしろそうなのでインストールしてみました。

構築環境

OS CentOS 6.9
IPアドレス 10.0.0.6
PHP 5.3 ⇒ 5.6
MySQL 5.7
git 2.13.1
node.js 7.10.0
その他 gcc-c++、make、yarn

gitをインストール

gitをインストールします。
CentOS6.xで標準のgitをインストールするとバージョンが古いので
リポジトリを追加してyumで最新版を導入します。

・既にgitがインストールされている場合は、一度アンインストールします。

# yum remove git

・wingリポジトリを登録

# cd /etc/yum.repos.d/
# wget http://wing-repo.net/wing/6/EL6.wing.repo

・wingリポジトリを有効にするオプションを付けながらyumを実行

# yum --enablerepo=wing install git

これで最新のgitがインストールされたはずです。

# git --version
git version 2.13.1

node.jsをインストール

Node.jsは頻繁にメジャーアップデートが走るそうなんで
多少のバージョンの違いが出て来るかもしれません。
今回はバージョン7系の最新版をインストールします。
こちらもyumでインストールします。

・既にnode.jsが入っている場合アンインストールしておきます。

yum remove nodejs

・リポジトリ追加

curl -sL https://rpm.nodesource.com/setup_7.x | bash -

・yumを実行(レポジトリはEnableになってます)

# yum install nodejs

・nodejsの7.x系最新版がインストールされました。

# node -v
v7.10.0

また、makeとgcc++のライブラリも必要になるので
導入されていなければこちらもインストールします。

# yum install gcc-c++ make

PHPのアップグレート

yumで取得できるPHPはバージョンが5.3なので、5.6をインストールします。

・EPELとRemiリポジトリを追加

# yum install epel-release
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

・現在のPHPバージョンを確認

# rpm -qa | grep php
php-pear-1.9.4-5.el6.noarch
php-common-5.3.3-49.el6.x86_64
php-5.3.3-49.el6.x86_64
php-mysql-5.3.3-49.el6.x86_64
php-xml-5.3.3-49.el6.x86_64
php-pdo-5.3.3-49.el6.x86_64
php-cli-5.3.3-49.el6.x86_64
php-gd-5.3.3-49.el6.x86_64
php-mbstring-5.3.3-49.el6.x86_64

・既に古いバージョンがインストール済みの場合、
削除しなくてもアップデートされますが、念のため消しておきます。

# yum remove php-*

・PHP5.6をインストール

# yum install --enablerepo=remi,remi-php56 php php-mysql php-cli php-xml php-devel php-mbstring php-pdo php-gd php-common php-pear

・PHPバージョン確認

# php --version
PHP 5.6.30 (cli) (built: Jan 19 2017 08:09:42) 

・apacheが入っている場合は、念の為再起動しておきます。特に意味はないです。

# /etc/init.d/httpd restart

Composerのインストール

Composerをインストールします。
ComposerはPHP版のyumの様なパッケージ管理ツールです。
・ダウンロード

# curl -sS https://getcomposer.org/installer | php

・パスが通っている場所にリネームする

# mv composer.phar /usr/local/bin/composer

MySQLでデータベース作成

データベースを作成します。
今回作成するデータベースの名前は「koel」とし
koeladminユーザのみ操作できる、としました。

create database koel;
grant all on koel.* to 'koeladmin'@'localhost' identified by '********';
GRANT ALL PRIVILEGES ON koel.* TO 'koeladmin'@'localhost' WITH GRANT OPTION;
flush privileges;

DB作成後に接続できるか確認してきます。

# mysql -u koeladmin -p                                                                             
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 142985
Server version: 5.7.18 MySQL Community Server (GPL)

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

koelのインストール

ようやくkoelのインストールです。
ここからはrootユーザで作業を行ってください。

# cd /usr/local/src/
# git clone https://github.com/phanan/koel && cd koel
# npm install --global yarn //必要なモジュールになります。
# npm install -g node-sass  //必要なモジュールになります。
# npm install
# composer install

次に.envファイルの作成です。
.envファイルにデータベースの接続に必要な情報や、管理者の情報を編集します。

# vi .env 

# DB情報 (自身の環境に合わせてください)
DB_CONNECTION=mysql
DB_HOST=localhost
DB_DATABASE=koel
DB_USERNAME=koeladmin
DB_PASSWORD=********

# admin情報を記述。ADMIN_EMAILはログインに必要になります。
ADMIN_EMAIL=mail@mail.com 
ADMIN_NAME=admin
ADMIN_PASSWORD=********

続いて下記のコマンドを打つとDBのマイグレーションなどが走ります。

# php artisan koel:init

ちなみにここで下記画像の様なエラーが出てしまった場合

これはMySQL 5.5.3より前のバージョンに
「utf8」の文字コードを指定したデータをインポートする時には
エラーが出てしまう、ということでした。

解決するには、以下の箇所を修正して再実行してみて下さい。

# vi config/database.php

'charset'   => 'utf8',
'collation' => 'utf8_unicode_ci',
↓
'charset'   => 'utf8',
'collation' => 'utf8_unicode_ci',

上記まで終わればインストールは完了です。
下記コマンドを打てば、koelが起動します。

# php artisan serve

ただし、上記コマンドだとlocalhost接続のみが許可されるので
他のホストからの接続を受け入れる場合は
‘host’オプションを指定する必要があります。

# php artisan serve --host 0.0.0.0

ブラウザからアクセスする

ブラウザでhttp://10.0.0.6:8000/にアクセスします。
(IPアドレスは設定したサーバのIPに適宜変更してください。)

ブラウザ上で以下の画面が表示されればインストール成功です。
.envで設定した管理者アドレスとパスでログインします。

・ページ表示が行えない場合
⇒iptablesとかでアクセス制限がかかってるかも?

・PHPのエラーが出てしまう場合

⇒npmインストールでコケてる可能性が高いので、
正しくインストールが行われているか、足りないモジュールが無いか再度確認します。


正しくインストールされ
ログインするとダッシュボードページにジャンプし
ここで再生やプレイリストなどの様々なことが出来ます。

デフォルトでサポートされている音楽ファイルは
mp3、ogg、m4a、flacの4種類です。

おわりに

公式サイトに記載されている手順だと、nodejsやgit、
PHP composerの導入が端折られている為
その辺りの知識がないと、導入までに骨が折れるかと思います。
なので、今回は自分なりにイチからインストールできる様まとめてみました。

もしご興味のある方がいましたら、お試しくださいー。

※参考サイト
http://qiita.com/ozawan/items/caf6e7ddec7c6b31f01e
http://co.bsnws.net/article/71
https://gist.github.com/bplower/613a99156d603abac083
http://tydk27.hatenadiary.com/entry/20160216/1455600283