Powは、Mac OSX用のRackサーバです。これを使うと複数のRackアプリ(まあRailsアプリ)を同時に簡単に動かすことができます。開発環境に便利。Ruby on Railsの開発者であるDHHが所属する37signalsが公開しています。
↓ こちらのブログ記事が気になって僕も試してみました。
インストール方法
$ curl get.pow.cx | sh
アプリ登録方法
ホームディレクトリに.powというディレクトリができているので、そこにアプリルートへのシンボリックリンクを作ります。
$ ln -s /path/to/myapp ~/.pow/
こんだけ。完了。
自動的に myapp.dev というバーチャルドメインが出来上がっています。即座に http://myapp.dev/ というURLでアプリにアクセス可能。ドメインをマッピングする設定とか必要ない。Convention over Configurationですよ。
その他
明示的にサーバを起動する必要はない。初回アクセスで自動的に起動する。15分間アクセスがないと自動的に落ちる。
サブドメインも自動的に使える。http://aaa.myapp.dev/ でも http://bbb.aaa.myapp.dev/ でも。
Webサーバをリスタートするには、アプリルートのtmpディレクトリ内にrestart.txtというファイルを作るだけ。次のコマンドでやればいい。
$ touch tmp/restart.txt
Webサーバのログは ~/Library/Logs/Pow の下にある。アプリのログはここには出力されないので、
$ tail -f log/development.log
しながら開発すると良い。
何が嬉しいか?
今までは、script/serverとかrails serverとかでアプリごとにWEBrickを起動して、http://localhost:3000/ にアクセスしながら開発していました。
いろんなアプリを開発していると、違うアプリのCookieが混ざってしまったりとか、ブラウザに関係ないパスワードを補完されてむかついたりだとか。で、/etc/hostsを設定したりしていたのだが、開発環境ごとにやらなくちゃいけなくて微妙に面倒くさい。さらにアプリ間の連携機能を開発する時にはポートがぶつからないようにしないといけないだとか微妙に面倒くさい。
微妙に面倒くさかったけど、たいしたことないとして我慢していたことがPowで手軽に解消されてハッピーとなる。
RVMを組み合わせると、各アプリでRubyのバージョンやgemが異なっていても共存できて最強です。
RVMについては当ブログの過去記事参照。↓
- 2011/1/9 RVM: Ruby 1.8と1.9とか複数gems環境の共存とか
- 2011/1/13 Ruby環境切替器RVMが便利すぎる件