« redMine&Apache | Main | TracのTicket WorkFlow »

2007.05.12

redMine&Apache(FastCGI)

 cgiモードでApache+redMineという組み合わせは、パフォーマンスの点で非現実的。1リクエスト毎に数秒~10秒程度かかってしまうと、日常的に利用すると使うのが嫌になってくるのは間違いないでしょう。ということで、FastCGIを利用することに挑戦。

 参考にしたサイトは、
Railsマスターへの道:Apache&FastCGI
Windows環境での Ruby on Rails (開発環境構築)
Typo
です。

 これまたざっくりと要約すると、
■FastCGIをインストールする
 RubyForApache(Windows)からRubyForApache-1.3.1.exeをダウンロードし、インストール。ApacheおよびRubyのインストールパスを指定する際、\RubyForApacheが勝手に補完されてしまいますが、削除します(削除し損ねてインストールしてしまった場合は、それぞれのRubyForApacheフォルダ内のファイルを、1階層上の状態にコピー(移動)します)。
 インストールが完了するとApacheのmodulesフォルダ内にmod_ruby.somod_fastcgi.soが、Rubyのlib\ruby\site_ruby\1.8フォルダ内にauto-reload.rbファイル、fcgi.rbファイルapacheフォルダが、i386-msvcrtフォルダ内にfcgi.soファイルmysql.soファイルが追加されているはずです。

 ※なお、RubyForApacheのメンテナンスはもう行わず、代わりにInstantRailsを使用してくださいとのこと。

■FastCGIを組み込み
 httpd.confに以下の行を追加します。

LoadModule fastcgi_module modules/mod_fastcgi.so
<IfModule mod_fastcgi.c>
  FastCgiConfig -maxClassProcesses 30 -maxProcesses 5 -minProcesses 5 -processSlack 1 -idle-timeout 180 -initial-env RAILS_ENV=production -initial-env PATH -initial-env ARP_ICONV_PATH
</IfModule>

 FastCgiConfigの各パラメータの値がこれで適切なのかどうかはわかりません(^^;
 なお、-initial-envでPATHを渡しておかなければ、「libmySQL.dllが見つかりません」というエラーが発生したり、Subversionのリポジトリブラウザにアクセスできなくなってしまうようです(デフォルトでは環境変数PATHが引き継がれないようなので)。

 ※ARP_ICONV_PATHはSubversionのインストールフォルダのiconvフォルダを指定しています(が、指定しなくてもいいような気もします)。

■.htaccessを編集
 C:\Tools\redmine-0.5.0\public\.htaccessファイルを開き、

RewriteRule ^(.*)$ dispatch.cgi [QSA,L]
の部分を
RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
に書き換えます。

■dispatch.fcgiを編集
 C:\Tools\redmine-0.5.0\public\dispatch.cgiの1行目

#!/usr/bin/ruby
#!ruby
に書き換えます。

■.NET Framework1.1のインストール
 既にインストール済みの場合は不要(.NET Framework2.0がインストールされている場合にどうなるかは試していないのでわかりません)。
 「mscoree.dllが見つからない」というエラーが発生する場合、WindowsUpdateのサイトから「追加選択(ソフトウェア)」で.NET Framework1.1をインストールします(mscoree.dllは.NET Framework1.1に含まれているDLLのようです)。

 これでFastCGIを利用してredMineにアクセスするようになるはず。1回目のリクエストは結構時間がかかりますが、2回目以降はサクサク動くようになるはずです。

#ただ・・・僕の環境では、結構頻繁にruby.exeが落ちるんですよね・・・どこか設定に問題があるだけなのかもしれませんが。

[2007/07/13]誤字修正「保管」→「補完」

|

« redMine&Apache | Main | TracのTicket WorkFlow »

Subversion・Trac・etc.」カテゴリの記事

Comments

\RubyForApacheが勝手に保管されてしまいますが
→\RubyForApacheが勝手に補完されてしまいますが
では?

Posted by: satie | 2007.07.13 12:47

その通りですね(^^;
修正しました。

Posted by: syo | 2007.07.13 21:18

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack


Listed below are links to weblogs that reference redMine&Apache(FastCGI):

» redMine&Apache(Proxy) [気の向くままに・・・]
 redMineをApacheと組み合わせる方法としては、FastCGIを使う以 [Read More]

Tracked on 2007.05.13 21:00

» redMine&Apache(SCGI) [気の向くままに・・・]
 redMineをApache FastCGI環境で稼働させると、非常に頻繁にR [Read More]

Tracked on 2007.05.15 11:45

« redMine&Apache | Main | TracのTicket WorkFlow »