Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 63a90446

Von Sven Schöling vor etwa 14 Jahren hinzugefügt

  • ID 63a9044638de7ad57914c2c4140713c8db0d3b44
  • Vorgänger a07567c2
  • Nachfolger 0ea2ddad

FastCGI Dokumentation erweitert.

Unterschiede anzeigen:

doc/INSTALL.fcgi
78 78
hier kleine Performance Einbu?en.
79 79

  
80 80

  
81
=head2 M?gliche Fallstricke
81
=head2 Entwicklungsaspekte
82 82

  
83 83
Die AddHandler Direktive vom Apache ist entgegen der Dokumentation
84 84
anscheinend nicht lokal auf das Verzeichnis beschr?nkt sondern global im
......
87 87
Wenn ?nderungen in der Konfiguration von Lx-Office gemacht werden, oder wenn
88 88
Templates editiert werden muss der Server neu gestartet werden.
89 89

  
90
Es ist m?glich die gleiche Lx-Office Version parallel unter cgi und fastcgi zu
91
betreiben. Da nimmt man Variante 2 wie oben beschrieben, und ?ndert die
92
MatchAlias Zeile auf eine andere URL, und l?sst alle anderen URLs auch
93
weiterleiten:
90 94

  
91 95

  
96
  AliasMatch ^/web/path/to/lx-office-erp-fcgi/[^/]+\.pl /path/to/lx-office-erp/dispatcher.fpl
97
  AliasMatch ^/web/path/to/lx-office-erp-fcgi/(.*) /path/to/lx-office-erp/$1
98

  
99
Dann ist unter C</web/path/to/lx-office-erp/> die normale Version erreichbar,
100
und unter C</web/opath/to/lx-office-erp-fcgi/> die FastCGI Version.
101

  
102
Bei der Entwicklung f?r FastCGI ist auf ein paar Fallstricke zu achten. Dadurch
103
dass das Programm in einer Endlosschleife l?uft, m?ssen folgende Aspekte
104
geachtet werden:
105

  
106
=head3 C<warn>, C<die>, C<exit>, C<carp>, C<confess>
107

  
108
Fehler die normalerweise dass Programm sofort beenden (fatale Fehler) werden
109
mit dem FastCGI Dispatcher abgefangen, um das Programm amLaufen zu halten. Man
110
kann mit C<die>, C<confess> oder C<carp> Fehler ausgeben, die dann vom Dispatcher
111
angezeigt werden. Die Lx-Office eigene C<$::form->error()> tut im Prinzip das
112
Gleiche, mit ein paar Extraoptionen. C<warn> und C<exit> hingegen werden nicht
113
abgefangen. C<warn> wird direkt nach STDERR, also in Server Log eine Nachricht
114
schreiben, und C<exit> wird die Ausf?hrung beenden.
115

  
116
Prinzipiell ist es ein Beinbruch, wenn sich der Prozess beendet, fcgi wird ihn
117
sofort neu starten, allerdings sollte das die Ausnahme sein. Quintessenz: Bitte
118
kein C<warn> oder C<exit> benutzen, alle anderen Excepionmechanismen sind ok.
119

  
120
=head3 Globale Variablen
121

  
122
Um zu vermeiden, dass Informationen von einem Request in einen anderen gelangen
123
m?ssen alle globalen Variablen vor einem Request sauber initialisiert werden.
124
Das ist besonders wichtig im C<$::cgi> und C<$::auth> Objekt, weil diese nicht
125
gel?scht werden pro Instanz, sondern persistent gehalten werden.
126

  
127
Datenbankverbindungen wird noch ein Guide verfasst werden, wie man sichergeht,
128
dass man die richtige erwischt.
129

  
92 130
=head2 Performance und Statistiken
93 131

  
94 132
Die kritischen Pfade des Programms sind die Belegmasken, und unter diesen ganz

Auch abrufbar als: Unified diff