Una soluzione alle scarse performance dei CGI, dovuta al fatto che un'istanza dell'interprete Ruby viene lanciata ad ogni esecuzione di uno script, è fornita dal modulo di Apache mod_ruby
. mod_ruby
dota Apache di un interprete Ruby allo stesso modo dei più conosciuti mod_perl
e mod_php
, in questo modo è possibile eseguire codice Ruby senza dover ogni volta creare un nuovo processo come accade per i CGI. mod_ruby
va scaricato dal sito www.modruby.net e installato nel classico modo:
# ./configure.rb' # make # make install
Dopodiché occorre modificare il file httpd.conf
e riavviare il server Apache. Ad httpd.conf
basta aggiungere le direttive per caricare il modulo e quelle per definire le directory degli script Ruby:
LoadModule ruby_module lib/httpd/modules/mod_ruby.so <IfModule mod_ruby.c> RubyRequire apache/ruby-run <Location /ruby> SetHandler ruby-object RubyHandler Apache::RubyRun.instance </Location> <Files *.rbx> SetHandler ruby-object RubyHandler Apache::RubyRun.instance </Files> </IfModule>
Una trattazione dettagliata degli handler utilizzati si trova sul Wiki dedicato a mod_ruby e alla documentazione di mod_perl
.