Betrieb
Betriebskonzept#
imperia weist eine Staging-Architektur auf. Das Entwicklungssystem wird hauptsächlich von den Redakteuren genutzt, um den Inhalt zu verwalten. Das andere imperia-System, das üblicherweise physikalisch vom Entwicklungssystem getrennt ist, ist das Zielsystem, auf dem die Dokumente veröffentlicht werden.
Außerdem muss entschieden werden, ob und welche Art Zugang Provider, Partner und pirobase imperia gmbh zum System haben, um einen technischen Support zur Verfügung zu stellen.
Ob in Projekten oder bei Fragen zum Support kann es sehr nützlich sein der pirobase imperia gmbh einen Zugang zur Kommandozeile (z. B. ssh unter Unix oder RDesktop/vnc unter Windows) und den Webseiten der Entwicklungs- und Zielsysteme bereitzustellen. Auf diesem Wege können Fragen und Probleme um einiges schneller bearbeitet und gelöst werden.
Die folgenden Abschnitte beschreiben die möglichen Produktionsumgebungen. Testsysteme können, müssen aber keine komplexe Struktur ausweisen.
Das Entwicklungssystem ist auf die Anforderungen der Publikation (Internet oder Intranet) angepasst. Im Produktivsystem werden üblicherweise zwei Server verwendet - ein Server für das Entwicklungssystem und der zweite für das/die Zielsystem(e).
Das Entwicklungssystem ist Teil von imperia, das Redakteuren ermöglicht Dokumente zu erstellen und zu bearbeiten. Welche Dokumente von Redakteuren ausgeführt werden können, hängt hauptsächlich von den zugeteilten Gruppen und Workflows ab, die im Entwicklungssystem definiert werden.
Sobald die Arbeit an einem Dokument beendet ist, wird es manuell oder automatisch vom Entwicklungssystem zu einem oder mehreren Zielsystemen transferiert. Dieser Prozess wird veröffentlichen genannt. Das Veröffentlichen wird durch PlugIns durchgeführt, die verschiedene Formate auf dem Zielsystem generieren. Wenn Sie solch ein PlugIn benutzen, kopiert imperia die gerenderten Dokumente, die auf dem Entwicklungssystem gespeichert sind, in das Dateisystem des entsprechenden Zielsystems. Das Zielsystem kann automatisch Site-Maps der veröffentlichten Dokumente generieren, sichergestellt das diese immer eine aktuelle Übersicht der Webseiteninhalte darstellen. Dieser Vorgang wird durch die SiteActives, den Hintergrund-Daemon Hermes und dem Notifikations-PlugIn durchgeführt. Das Notifikations-PlugIn kopiert die gesamten Dokumente binär zu einem Zielsystem. Der Background Daemon Hermes verarbeitet diese Notifikationsdatei und speichert diese in dem imperia Zielsystem ab. Außerdem triggert die Datei den sogenannten System Service, welcher die oben gemeinten SiteActive Funktionen verwaltet.
Server Backend#
Apache mod_perl#
Das Apachemodul mod_perl ist im Perl-Interpreter des Apache Webservers eingebunden. Das bedeutet, dass der Perl-Interpreter nicht bei jedem Aufruf neu gestartet werden sollte, wie üblich im Falle mit CGI. Alle Anfragen werden zum entsprechenden KontGrupper geführt und die entsprechenden Seiten mit einem Handler ausgeliefert.
Zusätzliche Apache2 Webserver Konfigurationen (z. B. vhost):
PerlOptions +Parent
PerlModule Apache2::RequestRec
PerlModule Apache2::compat
<Perl>
unshift @INC, '/var/www/imperia/site/modules/core';
unshift @INC, '/var/www/imperia/site/modules/collection';
push @INC, '/var/www/imperia/site/modules/fallback';
</Perl>
<Location /imp/>
SetHandler modperl
PerlResponseHandler Imperia::Core::Backends::ModPerl20
</Location>
Bitte beachten
Bitte beachten Sie, dass wenn Sie mehrere virtuelle Hosts nutzen, der Eintrag
PerlOptions +Parent
nur in einem virtuellen Host gesetz werden kann. Dies reicht jedoch, da der Schalter für alle virtuellen Hosts gilt.
Ersetzen Sie /var/www/imperia/site
mit dem absoluten Pfad zu Ihrem imperia System.
Falls das Prefix "/imp"
geändert werden muss, muss die system.conf Variable URI_PREFIX
ebenfalls angepasst werden. Diese Variable darf kein Slash enthalten.
Bitte beachten
Wenn Sie eine Datenbank von Oracle benutzen, wird die Oracle Umgebungsvariable im Startup-Skript des Apache Webservers eingetragen, um mod_perl nutzen zu können.
export NLS_LANG="AMERICAN_AMERICA.WE8ISO8859P15"
export NLS_NCHAR_CHARACTERSET="WE8ISO8859P15"
Einzig auf diesem Weg werden diese Variablen vor mod_perl geladen. In allen anderen Positionen ist die Ausführung zuspät und somit ist mod_perl bereits geladen. Umgebungsvariablen haben keinen Effekt auf mod_perl und imperia. Die Konsequenz: Die Datenbank kannn nicht abgerufen werden. In einem CGI Backend reicht es folgendes
env_NLS_LANG = AMERICAN_AMERICA.WE8ISO8859P15
env_NLS_NCHAR_CHARACTERSET = WE8ISO8859P15
in default.conf
einzutragen.
FastCGI#
Beispielkonfiguration für FastCGI:
Apache mod_fcgid module
ScriptAlias /cgi-bin /srv/www/imperia/cgi-bin
<Location /cgi-bin/imperia-fcgi.pl>
SetHandler fcgid-script
Options ExecCGI
Order allow,deny
Allow from all
</Location>
Apache mod_fcgid module
ScriptAlias /fcgi-bin /srv/www/imperia/fcgi-bin
<Location /fcgi-bin>
SetHandler fcgid-script
Options ExecCGI
Order allow,deny
Allow from all
</Location>
Apache mod_fastcgi module
AppClass /srv/www/imperia/dev/cgi-bin/imperia-fcgi.pl
Alias /cgi-bin /srv/www/imperia/cgi-bin
<Location /imp/>
SetHandler fastcgi-script
</Location>
Apache mod_fastcgi module
ScriptAlias /cgi-bin /srv/www/imperia/cgi-bin
<Location /cgi-bin/imperia-fcgi.pl>
SetHandler fastcgi-script
Options ExecCGI
Order allow,deny
Allow from all
</Location>
Interner Webserver#
Der interne Webserver site/bin/site_*imperia*.pl
für Entwicklungszwecke genutzt werden; besonders werden dem Debuggen.
Nutzen Sie die --help
Option, um alle verfügbaren Möglichkeiten zu betrachten.
Performance#
Hardware#
Wenn die Rede von Web Applikationen ist, wie zum Beipsiel ein CMS, werden Intel Architekturen Sparc Architekturen vorgezogen.
Dateisystem#
Wenn ein Linux System genutzt wird sollte ein XFS, ext4 oder ReiserFS Dateisystem genutzt werden.
Browser#
In imperia 10 werden nur aktuelle Browser unterstützt. Ältere Browser können nicht genutzt werden (Browser).
Datenstruktur#
Die Verzeichnisse, Unterverzeichnisse und Kategoriestrukturen sollten sorgfälltig geplant werden. Umso mehr Dokumente in einem Verzeichnis liegen, umso langsamer wird dieses abgerufen. Das Ziel ist es weniger Dokumente in einer Kategorie zu haben.