HTML Mason · 2 min read · Oct 19, 2025
Ejecutando HTML::Mason Con nginx Y FastCGI
Ejecutando HTML::Mason Con nginx Y FastCGI
Este artículo es una guía paso a paso para instalar el módulo HTML::Mason para usar con el servidor web ngingx y FastCGI. Ha sido probado en Debian (lenny), pero debería ser muy similar en Ubuntu y otras distribuciones basadas en Debian.
Instalando un servidor mínimo en funcionamiento
Primero que nada, instalaremos un servidor mínimo con nginx y FastCGI. Hice scripts básicos para hacerlo funcionar. Más tarde podemos personalizar esos scripts.
Instalar nginx
Ahora instalamos nginx y lo hacemos funcionar. Se asume que no hay otro servidor web activo en el host. Todo se instalará por defecto.
apt-get install nginxVeamos si funciona telnetando al puerto 80.
/etc/init.d/nginx start
telnet locahost 80
Escape character is '^]'
GET /
¡Bienvenido a ngingx!
... Instalar FastCGI
apt-get install libcgi-fast-perl libio-all-perlInstalar HTML::Mason
HTML::Mason se supone que necesita apache2 para funcionar, así que lo descargará e instalará. Nos desharemos de él más tarde.
apt-get install libhtml-mason-perl
apt-get --purge remove apache2-mpm-worker apache2-utils
apt-get --purge autoremoveEsperemos que ahora tengamos HTML::Mason instalado y sin rastros de apache. Asegúrate de que nginx siga funcionando verificando que aún responde en el puerto 80.
Configurar FastCGI
Necesitamos un servidor FastCGI en funcionamiento para que pueda ejecutar código HTML::Mason. Este script descargará toda la configuración y archivos de inicio. Debemos ejecutarlo como root. Por favor, échale un vistazo antes de ejecutarlo. Descarga y copia algunos archivos de github. Podría ser peligroso para tu servidor.
wget http://github.com/frankiejol/mason-fcgi/raw/master/download.sh
bash ./download.shEs muy importante cambiar la opción server_name en /etc/nginx/sites-available/mason al nombre real del servidor. Localhost no funcionará. Luego modifica la variable %SITES en /var/www/mason/mason_fcgi.pl.
Ejecutando código Mason
Finalmente, vamos a crear una página Mason simple.
mkdir /var/www/site1
echo '<% 2 + 2 %>' > /var/www/site1/index.htmlLuego, iniciemos el servicio. Un 4 debería aparecer si conectaste el sitio con tu navegador.
/etc/init.d/nginx restart
/etc/init.d/fcgi startPersonalizando el servidor
Ahora mismo tenemos un servidor Mason potenciado por nginx+FastCGI. Todos los archivos de configuración y scripts se pueden encontrar en mi repositorio de github.
nginx
La configuración de nginx está en /etc/nginx/sites-available/mason. La ubicación puede ser modificada para adaptarse a tus necesidades. Ten en cuenta que hay dos líneas de reescritura porque Mason no puede manejar directorios correctamente. Así que cuando la solicitud parece un directorio, se añade un sufijo index.html.
FastCGI
El script de inicio de FastCGI es /var/www/mason/mason_fcgi.pl. Se pueden proporcionar un montón de argumentos.
/var/www/mason/mason_fcgi.pl --help
mason_fcgi.pl [--help] [--pid=/var/run/fcgi/fcgi.pid] [--log=/var/log/nginx/fcgi/fcgi.log] [--debug] [--socket=/var/run/fcgi/mason_fcgi.sock] [--basedir=/var/www] [--workspace=/var/www/mason/workspace] [--error-uri=/errors/503.html] [--listen-queue=100] [--default-host=debian.localdomain]Hay una sección para añadir la carga de módulos Perl y variables globales. Este es el código por defecto:
{
package HTML::Mason::Commands;
# use My::Own::Module;
# use Data::Dumper;
# cualquier cosa que quieras disponible para los componentes
use vars(qw($DBH %stash));
}Ejecutando múltiples sitios FastCGI
El demonio FastCGI se ejecuta desde /etc/init.d/fcgi. Este script carga la configuración desde /etc/default/fcgi. Si necesitas más servidores FastCGI para diferentes sitios, simplemente copia el script de inicio a otro nombre y llama al archivo de configuración igual. El script de inicio cargará un archivo en /etc/default con el mismo nombre base que el suyo.
Enlaces
- nginx
- HTML::Mason
- archivos mason-fcgi
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.