47.4.6. Apache a mod_ruby

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:

Licence Creative Commons
Tento dokument Ruby, jehož autorem je Radek Hnilica, podléhá licenci Creative Commons Uveďte autora-Nevyužívejte dílo komerčně-Zachovejte licenci 3.0 Česká republika .