rails + apache2 + fcgi

Posted by vigosan, Mon Feb 25 12:10:00 UTC 2008

Hoy he terminado una aplicación en RoR para la gestión de incidencias (tickets) para la empresa donde trabajo. El tema, es que me he encontrado con ciertos problemas a la hora de configurar Apache2 y fcgid, sobre todo porque me he leído varios manuales y en cada uno de ellos me decía que tocara unas cosas diferentes, conclusión un pitoste impresionante.

Aquí tenemos la receta facilona que seguro no os dará problemas; primero instalamos:

intranet:~# apt-get install libapache2-mod-fcgid libfcgi-ruby1.8 
Habilitamos los módulos necesarios:
intranet:~# a2enmod fcgid
intranet:~# a2enmod rewrite

Modificamos el fichero /etc/apache2/sites-enabled/000-default:

NameVirtualHost *:80
<VirtualHost *:80>
...

Y cremos un nuevo servidor virtual que por el puerto 3000, para ello creamos el fichero /etc/apache2/sites-enabled/rails:

NameVirtualHost *:3000
<VirtualHost *:3000>
  ServerName rails
  DocumentRoot /var/www/app_rails/public
 <Directory /var/www/app_rails/public/>
   Options ExecCGI FollowSymLinks
   AddHandler fcgid-script .fcgi
   AllowOverride all
   Order allow,deny
   Allow from all
  </Directory>
</VirtualHost>

Podemos forzar a que Apache habilite el nuevo servidor virtual:

intranet:/etc/apache2# a2ensite
Which site would you like to enable?
Your choices are: default
Site name? rails

Para terminar con la configuración de Apache, hay que indicar que escuche también por el puerto 3000, pare ello editamos el fichero /etc/apache2/ports.conf y añadimos:

Listen 80
Listen 3000

Y ya por último, modificamos el fichero app_rails/public/.htaccess para que utilice fcgid

# General Apache options
#AddHandler fastcgi-script .fcgi
AddHandler fcgid-script .fcgi
AddHandler cgi-script .cgi
Options +FollowSymLinks +ExecCGI

...

RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]

Ahora solo falta reiniciar Apache2:

intranet:~# /etc/init.d/apache2 restart 

Filed Under: Debian Rails | Tags:

Comments