Edited at

puma & puma-dev にRails開発環境をより良く。pow代替&簡単・安全・安定

More than 1 year has passed since last update.


※2017/12/13追記。

Chrome(ブラウザ)がVer.63系になると、.devにはHTTPSが必須となります。しかも強制アップデートで。

HSTS (HTTP Strict Transport Security) ってやつ。簡単に言うとHTTPS必須にするよーの話。

この強制的にHTTPSにするよの対象に「.dev」ドメインが巻き込まれましたので、Powなどで.devにしてると色々問題出るよという。

例えばHTTPSで来たものを強制的にHTTPへとかroutesなどでやってると、永遠にループして帰ってこないw

※pumaを入れ直そう => puma & puma-dev で利用中の.devを.testなどに変更する



Pow がいうこと聞かない

Sierraにアップデートしたらpowがまた死んだので、またどうしようと悩む羽目に。

Pow(powder) + Ruby on Rails の環境でPC再起動したら .devが開かなくて詰んだ件(解決済み)

でも書いていた、再インストールや再起動してもダメでした。


puma-devというpow代替

エンジニア仲間から教えてもらったpuma-dev。

ちょっとググったら「時代はRails5だし、開発用サーバをPowからPuma-devへ乗り換えた」を見つけて、こちらのブログサイトのほぼ受け売りのエントリとなります。


puma-devのインストール手順

まず、既存のpowを消します。

Pow User's Manual1.2 Uninstalling Pow を参考。

$ curl get.pow.cx/uninstall.sh | sh

で、インストール。

puma-devに書いてある通りですが、先に紹介したブログにまとまってるんでこれをそのまま。

$ brew install puma/puma/puma-dev

$ sudo puma-dev -setup
$ puma-dev -install -d test

インストは以上。

2個めのコマンドにsudoが付いているがsudoじゃないとpermitが!と言われて動かないのでここは素直にsudoでOK。

※どっかから持ってきたコマンドにsudoついてたら疑ったほうがいいよ?

※20180214追記 puma-dev -install => puma-dev -install -d test


設定

基本的にはpowと同じでln -sで、がんがんシンボリックリンクを作っていく。

シンボリックリンクを張りたいディレクトリに移動してpuma-dev linkで作成する。

$ cd PATH/APPLICATION_NAME

$ puma-dev link -n APPLICATION_NAME

ex)

$ cd ~/Sites/favy
$ puma-dev link -n favy
$ cd ~/Sites/test_app
$ puma-dev link -n test_app

もしくは、~/.puma-dev内に、ln -sで作っても良いよ。

$ cd ~/.puma-dev/

$ ln -s PATH/APPLICATION_NAME APPLICATION_NAME

ex)

$ cd ~/.puma-dev/
$ ln -s ~/Sites/favy favy
$ ln -s ~/Sites/test_app test_app

こんな感じで。

複数アプリを一気に登録したい場合はln -sで作ってしまうと良いかも。


設定が終わったら

touch tmp/restart.txt

で、必ずpowリセットと同じことしましょう!


トラブルシューティング:unexpected exit

何かしらのエラー。原因は多数あるパターン。

・bundleしてない

・db:migrateしてない

・ln -s のつける先間違えてる

などなどがよくあるパターン。

tail -f ~/Library/Logs/puma-dev.log

などからログを見て何のエラーが起こっているのか確認しましょう。


※ 注意点

非常に重要なこと。

Railsアプリだったら、Gemfileに

group :development do

+ gem 'puma'
- gem 'unicorn'
end

と、入れてbundleしておきましょう。快適になる。unicornは要らない子。


そもそもpumaってなんなの?山ライオンなの?

MACのOSにあったアレとは関係がない。

最近の Rack サーバ事情についてというサイトに掲載があって、unicorn VS pumaみたいなそんな感じ。

詳しいことは誰かすごい人がカバーしてくれるでしょう。


powに対する愚痴

powは本当にOSのアップデートをするたびに僕の言うことを聞かない。嫌いだ。あんなやつ。

puma-devはそういうじゃじゃ馬感ゼロで素直ないい子。よしよし。