RubyをApache2.2.9上で動かす方法

最近、Rubyを勉強していて、いよいよRubyをサーバー上で動かそうかと思ったのですが、その方法を調べても情報が古いのがほとんどで、書いてあることを試しても出来ませんでした。mod_rubyを導入する方法や、RORを導入する方法はあったのですが、Rubyだけを動かす方法はありませんでした。自分の中では、Perlを動かすのと同じ要領で動かせると思ってたので、簡単に見つかるだろうと思ったのですが…。そこで、今後同じ思いをするだろう人のために私がした設定方法を示したいと思います。私の環境はWindows Vista Home Premium SP1ですが、Apacheの設定は共通だと思われるので、多くの場合、以下の設定で動くようになると思います。また、Vistaのセキュリティ関係の設定はOffにしておくと設定がやりやすいと思います(Program Files内をいじるので)
参考 http://blogs.msdn.com/shintak/archive/2007/02/03/vista-uac.aspx

Apacheの設定(Apache2.2.9、Ruby1.8.6を使用)

C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf

テキストエディタで開きます(コピーを取って置くことを推奨します)。以下、C:\Program Files\にApacheをインストールしたものとして進めます。httpd.confが開けたら、

<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin">

と書いてある部分を探し、までを以下のように書き換えます。これでhtdocs内にcgiファイルを置いても動きます。

<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs">
    AllowOverride All
    Options +ExecCGI
    Order allow,deny
    Allow from all
</Directory>

次に、

#AddHandler cgi-script .cgi

と書かれた部分を探し、次のように変えます。

AddHandler cgi-script .cgi .rb

これで、拡張子がrbのファイルをcgiファイルとして扱ってくれます。ここまでの設定が終わったら、保存してApacheを再起動させて下さい。これでApacheの設定は終わりです。

そして、Rubyのプログラムですが、以下の記載がファイルの先頭に必要です。これはPerlの時と同じですね。

#!/Ruby/bin/ruby.exe
print "Content-type: text/html\n\n";

1行目の

/Ruby/bin/ruby.exe

の部分はRubyをインストールした場所を指定して下さい。私の場合はC:\Ruby\bin\ruby.exeにruby.exeがあるので、こうなっています(多分Cというドライブ名は省略できる)。
2行目の

print "Content-type: text/html\n\n";

は、これから表示する文章がどんなコンテントタイプを持っているかを示しています(今回はhtml)。なので、これがないとブラウザはちゃんと表示してくれません(500 Internal Server Errorになると思います。)
下はサンプルプログラムです。

#!/Ruby/bin/ruby.exe
print "Content-type: text/html\n\n";

print <<EOS
<HTML>
<HEAD>
</HEAD>
<BODY>
Hello!World
</BODY>
</HTML>
EOS

このプログラムを例えばtest.rbと名前をつけて保存して、htdocsに置いて下さい。
http://localhost/test.rbにアクセスして、Hello!Worldが表示されれば設定は成功です。