Windows7でRuby1.9.3+Redmine2.2.0をthinサービス化する

投稿日: 2012/12/11 15:55

Windows7でRuby1.9.3+Redmine2.2.0を動作させようとして
前のエントリであっさりとWEBrickでの動作までは行けたのですが
そこからドン詰まりしました。

まずはmongrelが動かない。
調べるとmongrelはRuby1.9.3には対応していない模様。
gem install mongrel –pre
で開発版を入れたら動くのですが今度はmongrel_serviceがRuby1.9.3に
非対応なため結局ダメ。

加えてRedmine2.0くらいからbundlerというコマンドで必要なgemを
一発インストールできるみたいなのですが、
bundle install コマンドでインストールしたgemと
gem install *** でインストールしたgemを混ぜると良くない模様。
具体的にはmongrel以外をbundlerでインストールし、
mongrelをgem installでインストールするとmongrelが開発版でも動作せず。

調べると「mongrelはもう古い!これからはthinの時代だ!」という意見が多いので
thinに変えたのですがthinはmongrel_serviceのようにwindowsサービス化用の
便利なソフトが無い。

結局どうしたかというと。。。

Redmineを配置したディレクトリにbundlerでthinがインストールされるように
Gemfile.localを配置する。
内容は次のように

[plain]
# Gemfile.local
gem "thin"
[/plain]

私の場合はこれを D:\rails\redmine 直下に配置した状態で
コマンドラインを起動し、カレントディレクトリを D:\rails\redmine にした状態で
bundle install を実行。
自動的にthinがインストールされます。

起動確認のためthinコマンドでWebサーバ実行。

[shell]
D:\rails\redmine>thin -e production start
>> Using rack adapter
C:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:251:in `block in require’: iconv will be deprecated in the future, use String#encode instead.
>> Thin web server (v1.5.0 codename Knife)
>> Maximum connections set to 1024
>> Listening on 0.0.0.0:3000, CTRL+C to stop
[/shell]

この状態で http://loalhost:3000/ にアクセスして表示されたらOK。
Ctrl+Cでthinを中断します。

続いてthinをサービス化するのですが、有志がサービス化するexeを作っていました。

ソフトウェア開発のことを色々知りたい人のブログ (Redmine1.1.1続き)thinサーバーの構築(Mongrelよりも高速なWebサーバー)

上記WebサイトからThinService.exeを取得し、私の場合は C:\Ruby193\thin_service\ に配置。
続いて次のコマンドを実行しました。

[shell]
sc create "Redmine" binpath= "\"C:/Ruby193/thin_service/ThinService.exe\" \"C:/Ruby193/bin/ruby.exe\" \"C:/Ruby193/bin/thin\" \"D:/rails/redmine\" \"3000\""
[/shell]

以上でコントロールパネルのサービスにRedmineというサービスが出来ているので
起動してみてテスト、OKであれば自動起動設定でいけました。

私はsqlite3なので大丈夫でしたが、他の方の意見ではmysqlを使っている場合は
起動順をmysqlに依存させるようにしないとダメな場合もあるようです。