Server Setup · 2 min read · Oct 19, 2025
Esecuzione di HTML::Mason con nginx e FastCGI
Esecuzione di HTML::Mason con nginx e FastCGI
Questo articolo è una guida passo passo per installare il modulo HTML::Mason da utilizzare con il server web ngingx e FastCGI. È stato testato su Debian (lenny), ma dovrebbe essere molto simile su Ubuntu e altre distribuzioni basate su Debian.
Installazione di un server minimale
Prima di tutto installeremo un server minimale con nginx e FastCGI. Ho creato script di base per farlo funzionare. In seguito possiamo personalizzare quegli script.
Installare nginx
Ora installiamo nginx e facciamolo funzionare. Si presume che non ci sia alcun altro server web attivo nell’host. Tutto sarà installato per impostazione predefinita.
apt-get install nginxVediamo se funziona telnettando alla porta 80.
/etc/init.d/nginx start
telnet locahost 80
Escape character is '^]'
GET /
Benvenuto in ngingx!
... Installare FastCGI
apt-get install libcgi-fast-perl libio-all-perlInstallare HTML::Mason
HTML::Mason è supposto aver bisogno di apache2 per funzionare, quindi lo scaricherà e lo installerà. Ci libereremo di esso più tardi.
apt-get install libhtml-mason-perl
apt-get --purge remove apache2-mpm-worker apache2-utils
apt-get --purge autoremoveSperiamo che ora abbiamo HTML::Mason installato e nessuna traccia di apache. Assicurati che nginx stia ancora funzionando controllando se risponde ancora sulla porta 80.
Configurare FastCGI
Abbiamo bisogno di un server FastCGI in esecuzione affinché possa eseguire il codice HTML::Mason. Questo script scaricherà tutti i file di configurazione e di inizializzazione. Dobbiamo eseguirlo come root. Ti preghiamo di dare un’occhiata prima di eseguirlo. Scarica e copia alcuni file da github. Potrebbe essere pericoloso per il tuo server.
wget http://github.com/frankiejol/mason-fcgi/raw/master/download.sh
bash ./download.shÈ molto importante cambiare l’opzione server_name in /etc/nginx/sites-available/mason con il vero nome del server. Localhost non funzionerà. Quindi modifica la variabile %SITES in /var/www/mason/mason_fcgi.pl.
Esecuzione del codice Mason
Infine, creiamo una semplice pagina Mason.
mkdir /var/www/site1
echo '<% 2 + 2 %>' > /var/www/site1/index.htmlPoi avviamo il servizio. Un 4 dovrebbe apparire se hai collegato il sito con il tuo browser.
/etc/init.d/nginx restart
/etc/init.d/fcgi startPersonalizzare il server
In questo momento abbiamo un server Mason alimentato da nginx+FastCGI. Tutti i file di configurazione e gli script possono essere trovati nel mio repository github.
nginx
La configurazione di nginx si trova in /etc/nginx/sites-available/mason. La posizione può essere modificata per soddisfare le tue esigenze. Nota che ci sono due righe di riscrittura perché Mason non può gestire correttamente le directory. Quindi, quando la richiesta sembra una directory, viene aggiunto un suffisso index.html.
FastCGI
Lo script di avvio di FastCGI è /var/www/mason/mason_fcgi.pl. Può essere fornito un insieme di argomenti.
/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]C’è una sezione per aggiungere il caricamento di moduli Perl e variabili globali. Questo è il codice predefinito:
{
package HTML::Mason::Commands;
# use My::Own::Module;
# use Data::Dumper;
# qualsiasi cosa tu voglia disponibile ai componenti
use vars(qw($DBH %stash));
}Esecuzione di più siti FastCGI
Il demone FastCGI viene eseguito da /etc/init.d/fcgi. Questo script carica la configurazione da /etc/default/fcgi. Se hai bisogno di più server FastCGI per siti diversi. Basta copiare lo script di inizializzazione con un altro nome e chiamare il file di configurazione allo stesso modo. Lo script di inizializzazione caricherà un file in /etc/default con lo stesso nome di base di se stesso.
Link
- nginx
- HTML::Mason
- file mason-fcgi
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.