macでnginx-unitを使うのにちょっと苦戦したのでメモ代わりに。
インストール
brew
にはないのでソースからインストール
(公式を参照の上、ソースをダウンロード)
git clone https://github.com/nginx/unit
(ソースはどこでもOK)
ダウンロードしたフォルダに移動して、./configure
を。
だいたい代表的なオプションは以下の通りかと。
configure options
--prefix=/usr/local/ →だいたいこのへんの場所でOK
フルになるとこんな感じ
./configure --prefix=/usr/local/ とか
ruby用のconfigure
今回はrubyを動かしたいので、
./configure ruby
も実行。
ここでrbenv
からrubyをインストールしてる場合は、rbenvのバージョンと合わない場合あり。
(元から入ってるやつを指定してしまう?)
*参考
$ ./configure ruby
configuring Ruby module
checking for Ruby library ... found
checking for Ruby version ... 2.3.7
+ Ruby module: ruby.unit.so
(ほんとはrbenvで2.4.1のrubyが入ってる)
これはこのissueみて解決。
https://github.com/nginx/unit/issues/224
CONFIGURE_OPTS="--enable-shared" rbenv install 2.4.1
どうやらso作ってないと駄目なそうな。
ちなみに、--enable-shared
はダイナミックリンクライブラリを作るオプション。
build & install
make
make install
で入るはず。上のprefixでroot所有のフォルダだとsudo make install
で。
起動
unitd
でひとまず起動できる。
他のオプションは
https://unit.nginx.org/installation/#startup
を参照。
大体は、--control --log --pid
あたりのオプションを付けるかな。
(デフォルトだとunix-socketになるので、--control 127.0.0.1:8080
とかの方が楽かも。まぁテストだし。)
設定ファイルのPUTなど
これは公式を参照するほうが良い。railsはうまく起動できなかったりでハマリ気味。
https://unit.nginx.org/configuration/
JSONをunitdのcontrolにPUTしたりする。
configureオプションミスったり、変なのinstallしちゃったとき
make clean
か
make uninstall
で解決