Cómo instalar mod_ruby en varias distribuciones de Linux para usar con ISPConfig (2.2. 20 y más)
A partir de la versión 2.2.20, ISPConfig tiene soporte integrado para Ruby. En lugar de usar CGI/FastCGI, ISPConfig depende de que mod_ruby esté disponible en el Apache del servidor. Este artículo explica cómo instalar mod_ruby en varias distribuciones compatibles con ISPConfig.
¡No emito ninguna garantía de que esto funcione para usted!
1 Debian Etch/Ubuntu 7.10
En Debian Etch y Ubuntu 7.10, todo lo que tenemos que hacer es ejecutar (como root):
apt-get install libapache2-mod-ruby
No se necesita ninguna configuración en absoluto.
2 Fedora 8 / CentOS 5.1
Para Fedora 8 y CentOS 5.1, no hay un paquete mod_ruby disponible, por lo que debemos compilarlo nosotros mismos. Primero instalamos algunos requisitos previos:
yum install httpd-devel ruby ruby-devel
A continuación descargamos e instalamos mod_ruby de la siguiente manera:
cd /tmp
wget http://www.modruby.net/archive/mod_ruby-1.2.6.tar.gz
tar zxvf mod_ruby-1.2.6.tar.gz
cd mod_ruby -1.2.6/
./configure.rb --with-apr-includes=/usr/include/apr-1
hacer
hacer instalación
Finalmente debemos agregar el módulo mod_ruby a la configuración de Apache, por lo que creamos el archivo /etc/httpd/conf.d/ruby.conf...
vi /etc/httpd/conf.d/ruby.conf
LoadModule ruby_module modules/mod_ruby.so |
... y reinicie Apache:
/etc/init.d/httpd restart
3 Mandriva 2008.0
Mandriva 2008.0 tiene un paquete mod_ruby que podemos instalar de la siguiente manera:
urpmi apache-mod_ruby
Ese paquete viene con una configuración mod_ruby que habilita mod_ruby globalmente para todos los sitios web. Por lo tanto, tenemos que deshabilitarlo ahora para que pueda habilitarse en ISPConfig por sitio web:
vi /etc/httpd/modules.d/20_mod_ruby.conf
Comente o borre todo en ese archivo excepto las siguientes líneas:
<IfDefine HAVE_RUBY>
<IfModule !mod_ruby.c>
LoadModule ruby_module extramodules/mod_ruby.so
</IfModule>
</IfDefine> |
Luego reinicie Apache:
/etc/init.d/httpd restart
4 OpenSUSE 10.3
OpenSUSE 10.3 no tiene un paquete mod_ruby, por lo que debemos compilarlo manualmente. Primero instalamos los requisitos previos:
yast -i apache2-devel ruby ruby-devel
Luego construimos mod_ruby de la siguiente manera:
cd /tmp
wget http://www.modruby.net/archive/mod_ruby-1.2.6.tar.gz
tar zxvf mod_ruby-1.2.6.tar.gz
cd mod_ruby -1.2.6/
./configure.rb --with-apr-includes=/usr/include/apr-1
hacer
hacer instalación
Para habilitar mod_ruby, abrimos /etc/sysconfig/apache2 y agregamos ruby a la línea APACHE_MODULES, p. así:
vi /etc/sysconfig/apache2
[...]
APACHE_MODULES="actions alias auth_basic authn_file authz_host authz_groupfile authz_default authz_user authn_dbm autoindex cgi dir env expires include log_config mime negotiation setenvif ssl suexec userdir php5 rewrite ruby"
[...] |
Luego corremos
SuSEconfig
y reinicie Apache:
/etc/init.d/apache2 restart
5 Usando mod_ruby
Ahora supongamos que ha creado un sitio web en ISPConfig con la raíz del documento /var/www/web1/web. Si habilita Ruby para ese sitio web, ISPConfig agrega algo como esto a la configuración de Apache vhost del sitio web:
<IfModule mod_ruby.c>
<Directory /var/www/web1/web>
Options +ExecCGI
</Directory>
RubyRequire apache/ruby-run
#RubySafeLevel 0
<Files *.rb>
SetHandler ruby-object
RubyHandler Apache::RubyRun.instance
</Files>
<Files *.rbx>
SetHandler ruby-object
RubyHandler Apache::RubyRun.instance
</Files>
</IfModule> |
(Si no usa ISPConfig, entonces, por supuesto, puede agregar esto manualmente a su configuración de vhost, pero no olvide ajustar las rutas y reiniciar Apache después).
Para ver si mod_ruby funciona, creamos el archivo Ruby /var/www/web1/web/hello_world.rb:
vi /var/www/web1/web/hello_world.rb
# The Greeter class
class Greeter
def initialize(name)
@name = name.capitalize
end
def salute
puts "Hello #{@name}!"
end
end
# Create a new object
g = Greeter.new("world")
# Output "Hello World!"
g.salute |
El archivo debe ser ejecutable, entonces ejecutamos:
chmod 755 /var/www/web1/web/hello_world.rb
Ahora puede llamar al archivo en un navegador; si todo va bien, debería mostrar un Hello World! mensaje.
6 Enlaces
- mod_ruby:http://www.modruby.net
- Rubí:http://www.ruby-lang.org
- ISPConfig:http://www.ispconfig.org