Help us understand the problem. What is going on with this article?

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はそういうじゃじゃ馬感ゼロで素直ないい子。よしよし。

favy
デジタルマーケティングのスペシャリストと飲食業界出身の食のスペシャリストでチームは構成されていて、飲食市場に特化したマーケティング支援を軸に「飲食店がかんたんに潰れない世界を創る」を真剣に実現するためにチャレンジしています。
http://www.favy.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away