Harada's Diary

音楽を再生出来る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をインストールします。 
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