« TiDD初心者が陥りやすい罠~バージョンをCloseしないRedmineはVelocityが分からない | トップページ | Shibuya.trac第12回勉強会でチケット管理システム大決戦第2弾が開かれるようです #tidd »

2011/06/07

RedmineをThinで起動する

Redmine 1.2からMongrelが動作しなくなる可能性がある。
代わりにThinというRails用サーバーで起動することができたのでメモ。

【元ネタ1】
Redmine - Defect #7688: Redmine's trunk (rails 2.3.11) doesn't work with Mongrel 1.1.x - Redmine

徒然さめざめ redmineでmongrelはもうだめだ

上記に書かれているように、MongrelはRails2.3.8からサポートされなくなるらしい。
そこで、Thinを使ってみることにした。
Passengerが一番いいと思うが、Windows上ではインストールできないから。

【元ネタ2】
高速性が売りのRuby Webサーバ「Thin」 - MOONGIFT|オープンソース・ソフトウェア紹介を軸としたITエンジニア、Webデザイナー向けブログ

InfoQ: ThinはRubyの高速Webサーバ

実運用向けRedmine環境構築 - XOOPS専門-株式会社RYUS

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

Channel J :: mongrelに代えて、thinを使ってみようとしたが…

インストール&起動は下記で簡単。

gem install thin
gem list
rack (1.2.2, 1.1.0, 1.0.1)
thin (1.2.11 x86-mswin32)

cd redmine
thin -e production -p 3000 start

但し、rackのバージョンがRedmineのrailsと合致していないと意味不明なエラーが出る。

redmine\vendor\rails\actionpack\lib\action_controller.rb
に下記のパッチを当てたらThinから起動できた。

--- action_controller_org.rb Mon May 30 18:47:58 2011
+++ action_controller.rb Tue Jun 7 00:14:35 2011
@@ -31,7 +31,8 @@
end
end

-gem 'rack', '~> 1.1.0'
+#gem 'rack', '~> 1.1.0'
+gem 'rack', '~> 1.2.2'
require 'rack'
require 'action_controller/cgi_ext'

Windows上でThin+Redmineを動かしてみると、何となくレスポンスがよくなったような気もする。
もう少し試してみる。

|

« TiDD初心者が陥りやすい罠~バージョンをCloseしないRedmineはVelocityが分からない | トップページ | Shibuya.trac第12回勉強会でチケット管理システム大決戦第2弾が開かれるようです #tidd »

Redmine」カテゴリの記事

Ruby」カテゴリの記事

コメント

うちで以下の処置をしたところログイン画面の「ログインの維持」チェックボックスが効かなくなったような記憶があります。
-gem 'rack', '~> 1.1.0'
+#gem 'rack', '~> 1.1.0'
+gem 'rack', '~> 1.2.2'
当方のファイル変更履歴を見るといったんこの修正を入れたのを元に戻してました。
#記憶曖昧ですが、この Patch をあてたところ Cookie が正しく作られなくなっていました。
多分この patch が必要なのは、rack が複数バージョン存在しているとき rack 1.1.0 を使おうとしてうまく行かないからのようでしたので、rack 1.1.0 の方だけ残して rack 1.2.1 (ウチはこのバージョンでした) の方を削除ました。
rack 1.2.x が何に使われていたのかが問題なのですが、その状態で今のところ正常に動いてます。
普通に Redmine を入れたときに 1.2.x が当時の最新だったので入ってしまってて、Redmine が要求するのが 1.0.1 だったので追加で入れて動いたのでそのままにしていた...
だけど、1.2.x の方は実は削除すべきだった... みたいな話なのかなと無理矢理結論づけてます。

投稿: 柴田雅之 | 2011/06/09 10:28

もうすでにご存じかも知れませんが、多分次の段階で必要になる情報と思いますので、ご参考まで...
#差し出がましいかとは思いましたが、私が Thin をインストールした当時は、あまりまとまった情報がなく苦労したので...

Thin の Windows サービスへの登録方法です。

thin には mongrel_service 相当の親切なものは提供されていないので、
exe をサービスに登録する Windows 2003 Server Resource Kit の
instsrv.exe、srvany.exe の組を使います (使いましたというべきか... 今はもっとマシの方法があるのなら失礼!)。

http://www.microsoft.com/downloads/en/details.aspx?familyid=9d467a69-57ff-4ae7-96ee-b18c4790cffd

参考: http://a-programmer.blog.so-net.ne.jp/2007-02-07

1. DOS プロンプトから以下を実行して、空のサービス「サービス名」
を登録する。

C:\>instsrv サービス名 "C:\Program Files\Windows Resource Kits\Tools\srvany.exe"

PATH 環境変数を ResouceKits に通してないときは、instsrv.exe は
フルパス指定。引数の srvany.exe は、必ずフルパスで記述すること。

2. 以下の内容をレジストリに書き込んで、サービスの中身を定義する。

Ruby や Redmine のパスは適宜読み替えてください。

----- *.reg file -----
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\サービス名\Parameters]
"Application"="c:\\ruby\\bin\\ruby.exe"
"AppParameters"="c:\\ruby\\bin\\thin start -p ポート番号 -e production --prefix /redmine"
"AppDirectory"="c:\\redmine"
----------

うちではこの方法で2つのサーバーにそれぞれ4サービスずつ (合計8サービス) 登録して、Apache Load Balancer でまとめて使っています。

投稿: 柴田雅之 | 2011/06/09 11:04

◆柴田雅之さん

僕の環境(Windows+Ruby1.2.1+Rack1.2.2)では、ログイン維持は正常に動作していますので問題ないです。

ThinをWindowsサービス化する方法は知っていますが、Windows本体が重くなるので実施していません。
実プロジェクトでRedmineを動かすなら、WindowsよりもUnixの方が安定してますし、SVN・GitやHudsonと連携しやすいですから。

投稿: あきぴー | 2011/06/09 20:35

失礼しました。
Linux を Redmine のサーバーにするなら Passenger が主流ですので、Thin を話題にするなら Windows をサーバー主体の話なのかと思った次第です。
Windows だと Ebb も使えなさそうだし、どうしても Windows Server でないといけない制限のあるところだと Thin しか逃げ道がなくなったわけですし、この手の情報の需要が増えそうですね?

投稿: 柴田雅之 | 2011/06/10 10:41

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/49479/51884552

この記事へのトラックバック一覧です: RedmineをThinで起動する:

« TiDD初心者が陥りやすい罠~バージョンをCloseしないRedmineはVelocityが分からない | トップページ | Shibuya.trac第12回勉強会でチケット管理システム大決戦第2弾が開かれるようです #tidd »