
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をインストールします。
https://ja.wikipedia.org/wiki/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