Serveur Web · 2 min read · Oct 19, 2025
Exécution de HTML::Mason avec nginx et FastCGI
Exécution de HTML::Mason avec nginx et FastCGI
Cet article est un guide étape par étape pour installer le module HTML::Mason à utiliser avec le serveur web ngingx et FastCGI. Il a été testé sur Debian (lenny), mais cela devrait être très similaire avec Ubuntu et d’autres distributions basées sur Debian.
Installation d’un serveur minimal
Tout d’abord, nous allons installer un serveur minimal avec nginx et FastCGI. J’ai créé des scripts de base pour le faire fonctionner. Plus tard, nous pourrons personnaliser ces scripts.
Installer nginx
Maintenant, nous installons nginx et le faisons fonctionner. On suppose qu’il n’y a pas d’autre serveur web actif sur l’hôte. Tout sera installé par défaut.
apt-get install nginxVoyons si cela fonctionne en se connectant au port 80.
/etc/init.d/nginx start
telnet locahost 80
Escape character is '^]'
GET /
Bienvenue sur ngingx!
... Installer FastCGI
apt-get install libcgi-fast-perl libio-all-perlInstaller HTML::Mason
HTML::Mason est censé avoir besoin d’apache2 pour fonctionner, donc il va le télécharger et l’installer. Nous nous en débarrasserons plus tard.
apt-get install libhtml-mason-perl
apt-get --purge remove apache2-mpm-worker apache2-utils
apt-get --purge autoremoveEspérons que nous avons maintenant HTML::Mason installé et aucune trace d’apache. Assurez-vous que nginx fonctionne toujours en vérifiant qu’il répond toujours sur le port 80.
Configurer FastCGI
Nous avons besoin d’un serveur FastCGI en cours d’exécution pour pouvoir exécuter le code HTML::Mason. Ce script téléchargera tous les fichiers de configuration et d’initialisation. Nous devons l’exécuter en tant que root. Veuillez le consulter avant de l’exécuter. Il télécharge et copie certains fichiers depuis github. Cela pourrait être dangereux pour votre serveur.
wget http://github.com/frankiejol/mason-fcgi/raw/master/download.sh
bash ./download.shIl est très important de changer l’option server_name dans /etc/nginx/sites-available/mason par le vrai nom du serveur. Localhost ne fonctionnera pas. Ensuite, modifiez la variable %SITES dans /var/www/mason/mason_fcgi.pl.
Exécuter le code Mason
Enfin, créons une simple page Mason.
mkdir /var/www/site1
echo '<% 2 + 2 %>' > /var/www/site1/index.htmlEnsuite, démarrons le service. Un 4 devrait apparaître si vous avez connecté le site avec votre navigateur.
/etc/init.d/nginx restart
/etc/init.d/fcgi startPersonnaliser le serveur
En ce moment, nous avons un serveur Mason alimenté par nginx+FastCGI. Tous les fichiers de configuration et scripts peuvent être trouvés dans mon dépôt github.
nginx
La configuration de nginx se trouve dans /etc/nginx/sites-available/mason. L’emplacement peut être modifié selon vos besoins. Remarquez qu’il y a deux lignes de réécriture car Mason ne peut pas gérer correctement les répertoires. Donc, lorsque la demande ressemble à un répertoire, un suffixe index.html est ajouté.
FastCGI
Le script de démarrage FastCGI est /var/www/mason/mason_fcgi.pl. Un certain nombre d’arguments peuvent être fournis.
/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]Il y a une section pour ajouter le chargement des modules Perl et des variables globales. Voici le code par défaut :
{
package HTML::Mason::Commands;
# use My::Own::Module;
# use Data::Dumper;
# tout ce que vous voulez disponible pour les composants
use vars(qw($DBH %stash));
}Exécuter plusieurs sites FastCGI
Le démon FastCGI est exécuté depuis /etc/init.d/fcgi. Ce script charge la configuration depuis /etc/default/fcgi. Si vous avez besoin de plusieurs serveurs FastCGI pour différents sites, il suffit de copier le script d’initialisation sous un autre nom et d’appeler le fichier de configuration de la même manière. Le script d’initialisation chargera un fichier dans /etc/default avec le même nom de base que lui-même.
Liens
- nginx
- HTML::Mason
- fichiers mason-fcgi
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.