koelをArchLinuxへインストールしてみた

2022/02/02

Categories: home-nw Tags: linux archlinux install nginx

koelをArchLinuxへインストールしてみた。

$ uname -a
Linux wasu-dev 5.15.13-arch1-1 #1 SMP PREEMPT Wed, 05 Jan 2022 16:20:59 +0000 x86_64 GNU/Linux

OS: ArchLinux

ざっくりまとめ

山場ポイントは二つ

適当なサイトを鵜呑みにしてはいけない。

最初はhttpdでやろうとしたが、設定周りで死んだのでやめた。

最終的にはnginxにすることで解決はした。

koel:init

koel:init時にいろいろインスコした。いらんかも

$ sudo pacman -S python2 make gcc curl wget

PHP関連

$ sudo pacman -S php php-cgi php-fpm php-gd php-embed php-intl composer

前準備

$ cd <作業ディレクトリ>
$ glt clone --recurse-submodules https://github.com/koel/koel.git -b <タグ>
$ cd koel
$ composer install

ここ、当たり前なんだがアホな私はミスったので戒めに記載するが、

git cloneでシンプルに持ってくると平気で死ぬので

タグを指定することを強く推奨する。

ビルドエラー対策(いらんかも)

1. nodeバージョン調整

nodebrewでもなんでもよいが、

この手順を利用するのであればperlはインスコ必須となる。

$ curl -L git.io/nodebrew | perl - setup
$ nodebrew ls-remote
$ nodebrew ls-remote|grep 15
$ nodebrew install v15.14.0
$ nodebrew use v15.14.0

後述のビルドでv15.14.0でビルド通った。

2. Pythonバージョンの調整

$ alias python="python2"

pythonがすでに2であればやらんくてもよいです。

3. ようやくkoel:init

$ php artisan koel:init

これで通った。

4. 仮確認

$ php artisan serve

8000で確認。

DB接続やらADMINの情報については.envを編集する。

php artisan koel:admin:change-password

でパスワード変更できたりもする。

なお、私は自宅鯖限定で公開しているので、.envにて

APP_ENV=local

を設定している。

nginx

nginx経由で80番で配布する場合

$ sudo pacman -S nginx

本当はわけたほうがいいんだろうけど、

nginx.confに直書きした。

server {
    listen       80 default_server;
    listen       [::]:80 default_server;
    server_name  hogeeeeeeeeeee; # server name
    root         /path/to/koel/public; # save koel public path
    index index.html index.htm index.php;
	client_max_body_size 500m;
    location /media/ {
            internal;

            alias       $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 /index.php$is_args$args;
    }

    location ~ .php$ {
    	fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
    	fastcgi_index index.php;
    	fastcgi_read_timeout 240;
    	fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    	include fastcgi_params;
    	fastcgi_split_path_info ^(.+.php)(/.+)$;
    }
}
$ sudo systemctl enable nginx
$ sudo systemctl start nginx

fpmは環境ごとOSごとにデフォルトがかわってるっぽいので

/run/周りを確認してからかいたほうがいいかも。

client_max_body_size 500m;

こいつと、

php.iniの

post_max_size
upload_max_filesize

あたりはアップロードサイズに関わってきて、mp3はそこそこでかくなると思うので、

upload予定があれば余裕持たせといたほうがいい。

>> Home