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 lesen

Chronologische Liste und Netflix-Links -

Neuerscheinungen in der Übersicht -

Vorschau auf Film- und Serien-Highlights -

Mehr zum Thema

Webdesign

Adobe Illustrator wird im Webdesign immer beliebter. Wie Sie das Tool richtig einsetzen, erfahren Sie hier.
Facebook

Was sind die Implikationen für Unternehmen und Endanwender bei Facebooks neuer Suche Graph Search?
Online-Recht

Allgemeine Geschäftsbedingungen liest sich niemand gerne durch. Sie sind jedoch notwendig und äußerst sinnvoll. Worauf sie achten sollten.
Online-Recht in der Cloud

Dateien werden immer häufiger in der Cloud bereitgestellt. Rechtlich ist das jedoch durchaus problematisch. Wir klären über das Urheberrecht in der…
E-Commerce-Logistik

Für den Erfolg eines Online-Shops sind zahlreiche Faktoren verantwortlich. Neben Produktvielfalt und Darstellung der Waren gehört auch die Logistik.