Mason CMS

Teil 2: CMS-Serie: Mason

Performance

Damit Webserver die wechselnde Last gut verkraften können, muss man in der Lage sein, die Last der ankommenden Anfragen auf verschiedene Webserver zu verteilen. Das Stichwort heißt hier Load-Balancing. So mag es notwendig sein, den Webserver und FastCGI und eventuell den Webshop auf separaten Maschinen zu betreiben. Distributed Computing wird aber erst mit FastCGI unterstützt.

Perl, CGI/FastCGI oder Standalone

Die Standard-Umgebung beinhaltet Mason 1.40, den Apache-2.2-Webserver und das mod_perl 2.04-Modul für Apache. Eine alternative Konfiguration basiert auf dem Einsatz von CGI beziehungsweise FastCGI. Mason läuft aber auch durchaus als eine Standalone-Applikation.

Der einfachste Weg, Mason mit CGI-Skripten laufen zu lassen, besteht im Aufrufen des CGIHandler- Moduls. Hier ein Beispiel, das auf das unbedingt Notwendige gekürzt wurde:

#!/usr/bin/perl
use HTML::Mason::CGIHandler;
my $h = HTML::Mason::CGIHandler->new
(
data_dir => '/home/
internetmagazin/code/mason_data',
);
$h->handle_request;

Die httpd.conf von Apache könnte dann wie folgt aussehen:

DocumentRoot /pfad/zum/komponenten/
rootverzeichnis
ScriptAlias /cgi-bin/ /pfad/zu/
cgi-bin/<LocationMatch "\.html$">
Action html-mason /cgi-bin/
mason_handler.cgi
AddHandler html-mason .html</LocationMatch><LocationMatch "^/
cgi-bin/">
RemoveHandler .html</LocationMatch><FilesMatch "
(autohandler|dhandler)$">
Order allow,deny
Deny from all</FilesMatch>

Auf diese Weise sorgt man dafür, dass Apache 2.2 das mason_handler.cgi-Skript immer aufruft, wenn eine URL auf .html endet. Damit Mason bestimmte Verzeichnisse ignoriert, genügt Folgendes:

<LocationMatch "^/(verzeichnis1|
verzeichnis2| verzeichnis3)/">
RemoveHandler.html</LocationMatch>

Mason standalone

Mason kann auch als eine Template-Engine genutzt werden (zum Beispiel mittels Text::Template). Mason bringt enorme Leistungsfähigkeit, aber auch zusätzliche Komplexität ins Spiel. Ein auf das wirklich Nötige gekürztes Skript, mit dem man Mason 1.4 standalone aufrufen kann, sieht zum Beispiel wie folgt aus:

#!/usr/bin/perl
use HTML::Mason;
use strict;
my $interp = HTML::Mason::Interp->
new ();
$interp->exec(<relativerpfad>,<args>...);

Mehr zum Thema

HTML5: Quick Reference Guide
Ratgeber: "HTML5"

Die wichtigsten Tags auf einen Blick: In unserem praktischen Arbeitsblatt finden Sie einen wertvollen Begleiter für die Umstellung Ihrer Webprojekte…
internet, webdesign, google, content, ranking, seo, suchmaschine
Ratgeber: Urheberrecht

Einzigartige Inhalte bieten Lesern Mehrwert und sind ein wichtiges Qualitätsmerkmal. Ärgerlich, wenn sich jemand durch Kopieren an fremden Ergebnissen…
Die besten HTML5-Tipps
Neue Tipps & Tricks für blitz.io

Wer die Leistung einer Applikation ermitteln möchte, braucht keine Skripte zu schreiben, sondern kann einen der zahlreichen Online-Dienste einspannen.…
image.jpg
Ratgeber: Webentwicklung

Die clientseitige Javascript-Entwicklung bietet fast keine Entwicklungsumgebungen und auch keine vernünftigen Werkzeuge zur Fehlersuche. Eine der…
internet, webdesign, meteor, webapplikationen
Ratgeber

Mit Meteor sollen Entwickler in kurzer Zeit Umgebungen für Webapplikationen erstellen können, ohne sich um lästige Details kümmern zu müssen. Wir…