Revision 63a90446
Von Sven Schöling vor mehr als 14 Jahren hinzugefügt
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
FastCGI Dokumentation erweitert.