]> wagnertech.de Git - kivitendo-erp.git/commitdiff
FastCGI Dokumentation erweitert.
authorSven Schöling <s.schoeling@linet-services.de>
Fri, 29 Jan 2010 12:51:33 +0000 (13:51 +0100)
committerSven Schöling <s.schoeling@linet-services.de>
Tue, 20 Jul 2010 08:24:48 +0000 (10:24 +0200)
doc/INSTALL.fcgi

index b326ffcc7ece94736847b541c26de20c50a33f36..3f3fdeae796561af33cc0e8daf1bcc6d0a6a356f 100644 (file)
@@ -78,7 +78,7 @@ diesen. Dadurch dass zur Laufzeit 
 hier kleine Performance Einbußen.
 
 
 hier kleine Performance Einbußen.
 
 
-=head2 Mögliche Fallstricke
+=head2 Entwicklungsaspekte
 
 Die AddHandler Direktive vom Apache ist entgegen der Dokumentation
 anscheinend nicht lokal auf das Verzeichnis beschränkt sondern global im
 
 Die AddHandler Direktive vom Apache ist entgegen der Dokumentation
 anscheinend nicht lokal auf das Verzeichnis beschränkt sondern global im
@@ -87,8 +87,46 @@ vhost.
 Wenn Änderungen in der Konfiguration von Lx-Office gemacht werden, oder wenn
 Templates editiert werden muss der Server neu gestartet werden.
 
 Wenn Änderungen in der Konfiguration von Lx-Office gemacht werden, oder wenn
 Templates editiert werden muss der Server neu gestartet werden.
 
+Es ist möglich die gleiche Lx-Office Version parallel unter cgi und fastcgi zu
+betreiben. Da nimmt man Variante 2 wie oben beschrieben, und ändert die
+MatchAlias Zeile auf eine andere URL, und lässt alle anderen URLs auch
+weiterleiten:
 
 
 
 
+  AliasMatch ^/web/path/to/lx-office-erp-fcgi/[^/]+\.pl /path/to/lx-office-erp/dispatcher.fpl
+  AliasMatch ^/web/path/to/lx-office-erp-fcgi/(.*) /path/to/lx-office-erp/$1
+
+Dann ist unter C</web/path/to/lx-office-erp/> die normale Version erreichbar,
+und unter C</web/opath/to/lx-office-erp-fcgi/> die FastCGI Version.
+
+Bei der Entwicklung für FastCGI ist auf ein paar Fallstricke zu achten. Dadurch
+dass das Programm in einer Endlosschleife läuft, müssen folgende Aspekte
+geachtet werden:
+
+=head3 C<warn>, C<die>, C<exit>, C<carp>, C<confess>
+
+Fehler die normalerweise dass Programm sofort beenden (fatale Fehler) werden
+mit dem FastCGI Dispatcher abgefangen, um das Programm amLaufen zu halten. Man
+kann mit C<die>, C<confess> oder C<carp> Fehler ausgeben, die dann vom Dispatcher
+angezeigt werden. Die Lx-Office eigene C<$::form->error()> tut im Prinzip das
+Gleiche, mit ein paar Extraoptionen. C<warn> und C<exit> hingegen werden nicht
+abgefangen. C<warn> wird direkt nach STDERR, also in Server Log eine Nachricht
+schreiben, und C<exit> wird die Ausführung beenden.
+
+Prinzipiell ist es ein Beinbruch, wenn sich der Prozess beendet, fcgi wird ihn
+sofort neu starten, allerdings sollte das die Ausnahme sein. Quintessenz: Bitte
+kein C<warn> oder C<exit> benutzen, alle anderen Excepionmechanismen sind ok.
+
+=head3 Globale Variablen
+
+Um zu vermeiden, dass Informationen von einem Request in einen anderen gelangen
+müssen alle globalen Variablen vor einem Request sauber initialisiert werden.
+Das ist besonders wichtig im C<$::cgi> und C<$::auth> Objekt, weil diese nicht
+gelöscht werden pro Instanz, sondern persistent gehalten werden.
+
+Datenbankverbindungen wird noch ein Guide verfasst werden, wie man sichergeht,
+dass man die richtige erwischt.
+
 =head2 Performance und Statistiken
 
 Die kritischen Pfade des Programms sind die Belegmasken, und unter diesen ganz
 =head2 Performance und Statistiken
 
 Die kritischen Pfade des Programms sind die Belegmasken, und unter diesen ganz