Tato varianta je postavena na využití modulu mod_ruby apache. Využíva toho, že interpret Ruby se stává součástí apache a nemusí se s každou prohlíženou stránkou znovu startovat. Je tedy z hlediska koncového uživatele rychlejší. Použítí mod_ruby je má oblíbená varianta na paměťově slabších serverech. Není sice tak rychlá jako varianta s FastCGI, ale je znatelně rychlejší a svižnější než varianta s CGI. Nemá rovněž paměťové nároky FastCGI. Má-li váš server k dispozici málo paměti pro vaši aplikaci, vyzkoušejte mod_ruby, může to být ta správná volba pro vás.
Podle verze apache, kterou používáme, přinstalujeme bliček libapache2-mod-ruby
nebo libapache-mod-ruby
.
#
aptitude install libapache2-mod-ruby
#
aptitude install libapache-mod-ruby
Konfigurace aplikace je sdružena do jednoho souboru, na který se z hlavní konfigurace apache odkážeme direktivou Include
, nebo ji zahrneme přímo do souboru httpd.conf
.
#
# Apache configuration for WebDB aplication using mod_ruby
# Copyright (c) 2005 Radek Hnilica
# All rights reserved. Všechna práva vyhrazena.
# Following global configuration rule can be removed if it's one in
# main httpd.conf. The RubySafeLevel should be 0 (Unsafe), because
# Rails does not work with higher value (more safe level) yet.
RubySafeLevel 0
<Directory /var/www/název-aplikace
>
Options ExecCGI FollowSymlinks
AllowOverride None
RubySafeLevel 0
RubySetEnv RAILS_ENV production
RubyRequire apache/ruby-run
<Files *.rb>
SetHandler ruby-object
RubyHandler Apache::RubyRun.instance
</Files>
# Restricting access to application only to few users. Users
# should authenticate using theirs account names and passwords.
#AuthType Basic
#AuthName "Prokažte prosím vlastníctví účtu znalostí hesla."
#AuthUserFile /etc/apache-ssl/passwd/user
#Require user radek twada dusan
# Restricting access by ip or domain names. No restriction
# taken.
Order allow,deny
Allow from all
# Configuration of rewrite engine.
RewriteEngine On
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ dispatch.rb [QSA,L]
# Specific error message for error 500.
ErrorDocument 500 "<h2>Application fatal error</h2>Rails application\
failed to start properly"
</Directory>
FIXME: