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