Redmine on RHEL3


かなりインターバルが開いたけど、Issue trackingネタの続き。


間が開きすぎて、フリーじゃなくなった(挙句に日本語情報サイトまで消えてる)activecollabみたいなのもいるけど、新顔(当時あまりメジャーじゃなかったので知らなかっただけ)も増えてる。ということで、そんな新顔の中からRedmineを試用中。


RMagickを使った時にgemも導入済みなので、日本語情報サイトインストール手順をなぞって、WEBrickでの動作確認までは何の問題も無く終了。


問題はその先。日本語情報サイトではPassengerの利用を推奨しているけど、これが今や骨董品的存在となっているRHEL3ではapache用モジュールのbuild時にエラーが出る。エラーメッセージを見ると、どうもBoostのヘッダが見つからない、ということらしい。今時のLinuxなら標準添付かも知れないが、RHEL3にそんなものを求められても。


ということで、次案としてmod_proxy + thinを試すことに。実のところ、thinより速いという噂のEbbも試してみたんだけど、結果的にはthinやmongrelに比べるとまだ機能不足だった(理由は後述)。


thinのインストール自体は


gem install thin
で終了。この辺りの記述を参考にthinの設定ファイルを作成して、起動も一見成功したように見えた。ところがlogの最後にアボートしましたの文字。本当に日本語で表示されてるところを見ると、これは多分rubyのエラーメッセージ。要はdaemonになれずにプロセスが死んでる。


あれこれ調べた挙句に行き着いたのがこれ。thinが利用してるEventMachineが2.6カーネルにしかないepoll(7)を使うのを抑制する、という話。判んねーよ、こんなの。


mod_proxyの方の設定については、サブドメインを立てる権限の無い身としてはこちらを参考に。ちなみにEbbだと、mongrelやthinの--prefix相当のオプションが無いので、ここでつまづくことになる。mod_proxyの設定を


ProxyPass /redmine/ http://127.0.0.1:4904/redmine/
ProxyPassReverse /redmine/ http://127.0.0.1:4904/redmine/
とすることで、トップページはかろうじて表示されるけど、肝心のログイン画面へのリンクやCSSなどが

http://example.com/foo
と、サブディレクトリが含まれない形式に置換されるため、Ebbではまともに動かない。


とりあえず動くようにはなったけど、鬼門のActiveDirectoryとの連携をクリアしないと、実務レベルでは使えないんだよなぁ…