Webserver · 2 min read · Oct 19, 2025
HTML::Mason Mit nginx Und FastCGI Ausführen
HTML::Mason Mit nginx Und FastCGI Ausführen
Dieser Artikel ist eine Schritt-für-Schritt-Anleitung zur Installation des HTML::Mason-Moduls zur Verwendung mit dem nginx-Webserver und FastCGI. Es wurde in Debian (lenny) getestet, sollte aber sehr ähnlich mit Ubuntu und anderen Debian-basierten Distributionen sein.
Installation eines minimalen Servers
Zuerst installieren wir einen minimalen Server mit nginx und FastCGI. Ich habe grundlegende Skripte erstellt, um es zum Laufen zu bringen. Später können wir diese Skripte anpassen.
nginx installieren
Jetzt installieren wir nginx und bringen es zum Laufen. Es wird davon ausgegangen, dass kein anderer Webserver auf dem Host aktiv ist. Alles wird standardmäßig installiert.
apt-get install nginxLass uns sehen, ob es funktioniert, indem wir auf Port 80 telnetten.
/etc/init.d/nginx start
telnet locahost 80
Escape-Zeichen ist '^]'
GET /
Willkommen bei nginx!
... FastCGI installieren
apt-get install libcgi-fast-perl libio-all-perlHTML::Mason installieren
HTML::Mason benötigt angeblich apache2 zum Ausführen, also wird es heruntergeladen und installiert. Wir werden es später loswerden.
apt-get install libhtml-mason-perl
apt-get --purge remove apache2-mpm-worker apache2-utils
apt-get --purge autoremoveHoffentlich haben wir jetzt HTML::Mason installiert und keine Apache-Spuren mehr. Stelle sicher, dass nginx noch funktioniert, indem du überprüfst, ob es immer noch auf Port 80 antwortet.
FastCGI konfigurieren
Wir benötigen einen laufenden FastCGI-Server, damit er HTML::Mason-Code ausführen kann. Dieses Skript wird alle Konfigurations- und Init-Dateien herunterladen. Wir müssen es als Root ausführen. Bitte sieh es dir an, bevor du es ausführst. Es lädt und kopiert einige Dateien von GitHub. Es könnte gefährlich für deinen Server sein.
wget http://github.com/frankiejol/mason-fcgi/raw/master/download.sh
bash ./download.shEs ist sehr wichtig, die Option server_name in /etc/nginx/sites-available/mason auf den echten Namen des Servers zu ändern. Localhost funktioniert nicht. Ändere dann die %SITES-Variable in /var/www/mason/mason_fcgi.pl.
Mason-Code ausführen
Lass uns schließlich eine einfache Mason-Seite erstellen.
mkdir /var/www/site1
echo '<% 2 + 2 %>' > /var/www/site1/index.htmlDann lass uns den Dienst starten. Eine 4 sollte erscheinen, wenn du die Seite mit deinem Browser verbunden hast.
/etc/init.d/nginx restart
/etc/init.d/fcgi startDen Server anpassen
Im Moment haben wir einen nginx+FastCGI-betriebenen Mason-Server. Alle Konfigurationsdateien und Skripte sind in meinem GitHub-Repository zu finden.
nginx
Die nginx-Konfiguration befindet sich in /etc/nginx/sites-available/mason. Der Speicherort kann nach Bedarf angepasst werden. Beachte, dass es zwei Rewrite-Zeilen gibt, da Mason Verzeichnisse nicht richtig verarbeiten kann. Wenn die Anfrage wie ein Verzeichnis aussieht, wird ein Postfix index.html hinzugefügt.
FastCGI
Das FastCGI-Startskript ist /var/www/mason/mason_fcgi.pl. Eine Reihe von Argumenten kann übergeben werden.
/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]Es gibt einen Abschnitt, um das Laden von Perl-Modulen und globalen Variablen hinzuzufügen. Dies ist der Standardcode:
{
package HTML::Mason::Commands;
# use My::Own::Module;
# use Data::Dumper;
# alles, was du für Komponenten verfügbar haben möchtest
use vars(qw($DBH %stash));
}Mehrere FastCGI-Seiten ausführen
Der FastCGI-Daemon wird von /etc/init.d/fcgi ausgeführt. Dieses Skript lädt die Konfiguration von /etc/default/fcgi. Wenn du mehr FastCGI-Server für verschiedene Seiten benötigst, kopiere einfach das Init-Skript unter einem anderen Namen und nenne die Konfigurationsdatei gleich. Das Init-Skript lädt eine Datei in /etc/default mit dem gleichen Basenamen wie sich selbst.
Links
- nginx
- HTML::Mason
- mason-fcgi-Dateien
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.