FastCGI for Ruby on Rails

(2006.5.14新規作成)

Ruby on Railsアプリケーションは、WEBrick, CGI, FastCGI, mod_rubyで走るが、CGIはかなり遅い。秒単位で待たなければならない。FastCGIを使うと、CGIに比べてアプリケーションの反応を大幅に早くできる。

しかし、FastCGIは活発にはメンテナンスされていないので、インストールがやや難しい面がある。Apache 2.2では、そのままではコンパイルもできない。

インストールの手順をメモしておく。

FastCGIの仕組み

FastCGIは、Apacheと別プロセスのfcgiが常駐し、このプロセスでアプリケーションを動かす。Railsだと、dispatch.fcgiもfcgiとはさらに別のプロセスとして常駐する。

CGIの場合でsuEXECを有効にしていると、指定のユーザでアプリケーションを実行できるが、FastCGIでは、apache:apacheなどApacheの実効ユーザでアプリケーションを動かす。CGIで動いていたアプリケーションが動かなくなった場合は、パーミッションを確認したい。

パッケージの入手

FastCGIのサイト。

必要なパッケージは、FastCGI Developer's Kit, mod_fastcgi, ruby-fcgiの3つ。前2者は、とりあえず、Debianから取ってくる。

  1. Debian -- libfcgi-dev
  2. Debian -- libapache2-mod-fastcgi
  3. FastCGI for ruby (temporary site)

mod_fastcgiは、下記パッチも必要。

コンパイル、インストール

まず、FastCGI Developer's Kit。

パッチを当てて、

$ ./configure
$ make
$ su
# make install

次いで、mod_fastcgi。これはパッチを当ててからINSTALL.AP2に書いてある手順で。

ruby-fcgiは、Pure Rubyで設定する。

$ ruby install.rb config --without-ext
$ ruby install.rb setup
$ su
# ruby install.rb install

Railsでの設定

『Railsによる・・・』の22章を参照。

推薦図書

『RailsによるアジャイルWebアプリケーション開発』

私のコメント:
Railsのチュートリアル、本格的な開発から配備まで一通り解説した、Railsでアプリケーションを開発する際の必携書。現存する唯一のRails解説書。
(2006.5.14)

サイト内関連文書

Ruby on Rails 〜レールの路線図〜 スライド。