MongrelをWindowsのサービスとして動かす:Windowsのお手軽Rails環境

客先にRailsのデモ環境が入ったマシンを置いて来て、しばらく触ってもらおうという場合の環境構築。お手軽・便利なので情報共有します。PassengerはWindowsに対応していないがapacheとかmod_xxxx系と格闘しなくてもさくっと動くのは心強い。

要件

  • OSはWindows。一台完結でhttp://localhost/を見てもらう。
  • お客様はPCに詳しくなくても良い。Railsを起動するのに特殊な操作(コマンドプロンプトを・・・とか)は避けたい
  • 客先に自分が行ってフォローできる環境ではない。

つまり起動すれば何もしなくてもRailsアプリが起動しているよ、という状態にしたい。

ソリューション

Mongrel_serviceを使えばWindowsサービスとして動かせるよ!
ちなみにこの方法はFastLadderhttp://fastladder.org/ja/download.html)のWindows板でも使われている。

インストール方法

Ruby,Rails,DB(MySQL/PostgreSQL)は自力でインストールしてください。DB系はインストールするだけでサービスとして自動起動するはずです。

> gem install mongrel
> gem install win32-service
> gem install mongrel_service

mongrel_serviceはwin32-service0.5.2に依存しているがwin32-serviceの最新版はwin32-service0.6.1。gem install mongrel_serviceすれば勝手に0.5.2もインストールされる。

サービスインストール

前提としてC:\sample_appにRailsアプリが入っているものとします。

> mongrel_rails service::install -N "sample_app" -c C:\sample_app -p 3000 -e production

  • -N はWindowsのサービスに登録するサービス名
  • -c はRailsアプリのディレクトリパス
  • -p はポート番号(きれいな環境なら80にしちゃっても良いだろう)
  • -e 実行環境

おまけ

DB環境のセットアップ。raisl2.2系ならrakeで色々用意されているので楽になりました。
rake db:create RAILS_ENV=production
rake db:migration RAILS_ENV=production
rake db:fixtures:load RAILS_ENV=production