X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=doc%2FINSTALL.fcgi;h=063aa42a9681d10120b3223f329587cde0c1be69;hb=7535161df28588d394a01640d898ff12630611a0;hp=3f3fdeae796561af33cc0e8daf1bcc6d0a6a356f;hpb=63a9044638de7ad57914c2c4140713c8db0d3b44;p=kivitendo-erp.git diff --git a/doc/INSTALL.fcgi b/doc/INSTALL.fcgi index 3f3fdeae7..063aa42a9 100644 --- a/doc/INSTALL.fcgi +++ b/doc/INSTALL.fcgi @@ -43,15 +43,24 @@ Folgende Kombinationen funktionieren nicht: * Apache 2.2.11 (Ubuntu) + mod_fcgid: +Als Perl Backend wird das Modul FCGI.pm verwendet. Vorsicht: FCGI 0.69 und +höher ist extrem strict in der Behandlung von Unicode, und verweigert bestimmte +Eingaben von Lx-Office. Solange diese Probleme nicht behoben sind, muss auf die +Vorgängerversion FCGI 0.68 ausgewichen werden. =head2 Konfiguration des Webservers. -Variante 1: +Zuerst muss das FastCGI-Modul aktiviert werden. Dies kann unter +Debian/Ubuntu z.B. mit folgendem Befehl geschehen: - AddHandler fastcgi-script .pl + a2enmod fastcgi -Variante 2: +Die Konfiguration für die Verwendung von Lx-Office mit FastCGI erfolgt +durch Anpassung der vorhandenen Alias- und Directory-Direktiven. Dabei +wird zwischen dem Installationspfad von Lx-Office im Dateisystem +("/path/to/lx-office-erp") und der URL unterschieden, unter der +Lx-Office im Webbrowser erreichbar ist ("/web/path/to/lx-office-erp"). AliasMatch ^/web/path/to/lx-office-erp/[^/]+\.pl /path/to/lx-office-erp/dispatcher.fpl @@ -63,19 +72,16 @@ Variante 2: Allow from All - + Order Deny,Allow Deny from All - -Variante 1 startet einfach jeden Lx-Office Request als fcgi Prozess. Für sehr -große Installationen ist das die schnellste Version, benötigt aber sehr viel -Arbeitspseicher (ca. 2GB). - -Variante 2 startet nur einen zentralen Dispatcher und lenkt alle Scripte auf -diesen. Dadurch dass zur Laufzeit öfter mal Scripte neu geladen werden gibt es -hier kleine Performance Einbußen. +Hierdurch wird nur ein zentraler Dispatcher gestartet. Alle Zugriffe +auf die einzelnen Scripte werden auf diesen umgeleitet. Dadurch, dass +zur Laufzeit öfter mal Scripte neu geladen werden, gibt es hier kleine +Performance-Einbußen. Trotzdem ist diese Variante einer globalen +Benutzung von "AddHandler fastcgi-script .pl" vorzuziehen. =head2 Entwicklungsaspekte @@ -89,12 +95,15 @@ 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 +AliasMatch Zeile auf eine andere URL, und lässt alle anderen URLs auch weiterleiten: + # Zugriff ohne FastCGI + Alias /web/path/to/lx-office-erp /path/to/lx-office-erp + # Zugriff mit FastCGI: 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 + Alias /web/path/to/lx-office-erp-fcgi/ /path/to/lx-office-erp/ Dann ist unter C die normale Version erreichbar, und unter C die FastCGI Version. @@ -103,23 +112,23 @@ Bei der Entwicklung f dass das Programm in einer Endlosschleife läuft, müssen folgende Aspekte geachtet werden: -=head3 C, C, C, C, C +=head3 Programmende und Ausnahmen: C, C, C, C, C -Fehler die normalerweise dass Programm sofort beenden (fatale Fehler) werden -mit dem FastCGI Dispatcher abgefangen, um das Programm amLaufen zu halten. Man +Fehler, die dass Programm normalerweise sofort beenden (fatale Fehler), werden +mit dem FastCGI Dispatcher abgefangen, um das Programm am Laufen zu halten. Man kann mit C, C oder C 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 und C hingegen werden nicht abgefangen. C wird direkt nach STDERR, also in Server Log eine Nachricht schreiben, und C 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 oder C benutzen, alle anderen Excepionmechanismen sind ok. +Prinzipiell ist es kein Beinbruch, wenn sich der Prozess beendet, fcgi wird ihn +sofort neu starten. Allerdings sollte das die Ausnahme sein. Quintessenz: Bitte +kein C oder C benutzen, alle anderen Exceptionmechanismen sind ok. =head3 Globale Variablen -Um zu vermeiden, dass Informationen von einem Request in einen anderen gelangen +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. @@ -140,9 +149,3 @@ Pfaden, unter 0,15 sonst. =head2 Bekannte Probleme -Bei mehreren Benutzern scheint ab und zu eine Datenbankverbidung von Rose::DB -in den falschen Benutzer zu geraten. Das ist ein kritischer Bug und muss gefixt -werden. - -Bei Administrativen Tätigkeiten werden in seltenen Fällen die Locales nicht -richtig geladen und die Maske erscheint in Englisch.