HTTPサーバにRubyインタプリタを組み込むモジュール。通常のCGIスクリプトでは、実行するたびにRubyインタプリタを起動するので遅い。mod_rubyを使えばその時間を短縮できる。HTTPサーバに動的モジュールを組み込めるようにしておかないといけない。HTTPサーバのインストールmod_rubyのインストールmod_rubyのソースファイルを入手し、解凍する。modruby.netコンパイルとインストールは、次のようにする。apxsの場所は違う場合があるので、実際の環境に合わせる。install次に設定ファイルを書く。ディレクトリにmod_ruby.confファイルを作成する。9の場合は/etc/httpd/conf.dディレクトリにmod_ruby.confファイルを作成する。httpd.confに次の一文を追加する。conf/mod_ruby.confmod_ruby.confの内容は、例えば、次のようにする。ここでは拡張子rbxを持つファイルをmod_rubyスクリプトとして実行するようにしている。拡張子は何でもいいが、他の種類のファイルと被らないほうがいいだろう。LoadModuleディレクティブで、Apacheの起動時にモジュールをロードする。auto-reload</IfModule>設定ファイルが書けたらApacheを再起動する。場合は次のようにする。restartソースからインストールした場合は、次のようにする。restartHTMLデータの出力いくつか小さなmod_rubyスクリプトを作ってみる。mod_rubyスクリプトには実行許可を与えておかないといけない。標準出力への出力は、Webサーバーを通じてクライアントへ送信される。CGIと異なり、出力はすべてHTTPプロトコルのmessage-bodyとして扱われる。message-header(ヘッダ)は自動的に付加される。"foo\n"明示的に標準出力オブジェクトが必要な場合は、$stdoutを使う。STDOUTに出力すると、単に捨てられて、何も出力されない。ヘッダの指定mod_rubyでは、暗黙のうちにApacheモジュールが定義されている。Apacheモジュールのrequestプロパティ(Apache::Requestクラス)は、リクエストまたはレスポンスヘッダなどを格納する。出力するHTTPヘッダを指定するには、Apache.request.headers_out、content_typeプロパティなどに値を設定する。headers_outプロパティは、Apache::Tableクラスのオブジェクト。ヘッダを出力するには、Apache::Request#send_http_headerメソッドを呼び出す。"<html><body>移動しました。</body></html>"CGIライブラリを使うCGIライブラリは、CGIインターフェイスとmod_rubyの違いをある程度は吸収してくれる。次のサンプルは、CGIでもmod_rubyでも動く。EOFCGI#header()は、CGIのときはヘッダを文字列として返し、mod_rubyのときは内部でsend_http_headerする(何も返さない)。CGI#header()の戻り値の文字列を加工したりするようなスクリプトは、mod_rubyではそのままでは動かない。