Revision e1d7dc46
Von Sven Schöling vor etwa 14 Jahren hinzugefügt
doc/INSTALL.fcgi | ||
---|---|---|
38 | 38 |
Folgende Kombinationen sind getestet: |
39 | 39 |
|
40 | 40 |
* Apache 2.2.11 (Ubuntu) und mod_fastcgi. |
41 |
|
|
42 |
Folgende Kombinationen funktionieren nicht: |
|
43 |
|
|
44 |
* Apache 2.2.11 (Ubuntu) + mod_fcgid: |
|
41 |
* Apache 2.2.11 (Ubuntu) und mod_fcgid: |
|
45 | 42 |
|
46 | 43 |
Als Perl Backend wird das Modul FCGI.pm verwendet. Vorsicht: FCGI 0.69 und |
47 | 44 |
h?her ist extrem strict in der Behandlung von Unicode, und verweigert bestimmte |
... | ... | |
56 | 53 |
|
57 | 54 |
a2enmod fastcgi |
58 | 55 |
|
56 |
bzw. |
|
57 |
|
|
58 |
a2enmod fcgid |
|
59 |
|
|
59 | 60 |
Die Konfiguration f?r die Verwendung von Lx-Office mit FastCGI erfolgt |
60 | 61 |
durch Anpassung der vorhandenen Alias- und Directory-Direktiven. Dabei |
61 | 62 |
wird zwischen dem Installationspfad von Lx-Office im Dateisystem |
62 | 63 |
("/path/to/lx-office-erp") und der URL unterschieden, unter der |
63 | 64 |
Lx-Office im Webbrowser erreichbar ist ("/web/path/to/lx-office-erp"). |
64 | 65 |
|
66 |
Folgendes Template funktioniert mit mod_fastcgi: |
|
67 |
|
|
65 | 68 |
AliasMatch ^/web/path/to/lx-office-erp/[^/]+\.pl /path/to/lx-office-erp/dispatcher.fpl |
69 |
Alias /web/path/to/lx-office-erp/ /path/to/lx-office-erp/ |
|
66 | 70 |
|
67 | 71 |
<Directory /path/to/lx-office-erp> |
68 | 72 |
AllowOverride All |
... | ... | |
77 | 81 |
Deny from All |
78 | 82 |
</DirectoryMatch> |
79 | 83 |
|
84 |
...und f?r mod_fcgid muss die erste Zeile ge?ndert werden in: |
|
85 |
|
|
86 |
AliasMatch ^/web/path/to/lx-office-erp/[^/]+\.pl /path/to/lx-office-erp/dispatcher.fcgi |
|
87 |
|
|
88 |
|
|
80 | 89 |
Hierdurch wird nur ein zentraler Dispatcher gestartet. Alle Zugriffe |
81 | 90 |
auf die einzelnen Scripte werden auf diesen umgeleitet. Dadurch, dass |
82 | 91 |
zur Laufzeit ?fter mal Scripte neu geladen werden, gibt es hier kleine |
... | ... | |
84 | 93 |
Benutzung von "AddHandler fastcgi-script .pl" vorzuziehen. |
85 | 94 |
|
86 | 95 |
|
87 |
=head2 Entwicklungsaspekte |
|
88 |
|
|
89 |
Die AddHandler Direktive vom Apache ist entgegen der Dokumentation |
|
90 |
anscheinend nicht lokal auf das Verzeichnis beschr?nkt sondern global im |
|
91 |
vhost. |
|
92 |
|
|
93 |
Wenn ?nderungen in der Konfiguration von Lx-Office gemacht werden, oder wenn |
|
94 |
Templates editiert werden muss der Server neu gestartet werden. |
|
95 |
|
|
96 | 96 |
Es ist m?glich die gleiche Lx-Office Version parallel unter cgi und fastcgi zu |
97 |
betreiben. Da nimmt man Variante 2 wie oben beschrieben, und ?ndert die |
|
98 |
AliasMatch Zeile auf eine andere URL, und l?sst alle anderen URLs auch |
|
99 |
weiterleiten: |
|
97 |
betreiben. Daf?r bleiben Directorydirektiven bleiben wie oben beschrieben, die |
|
98 |
URLs werden aber umgeleitet: |
|
100 | 99 |
|
101 | 100 |
# Zugriff ohne FastCGI |
102 |
Alias /web/path/to/lx-office-erp /path/to/lx-office-erp
|
|
101 |
Alias /web/path/to/lx-office-erp /path/to/lx-office-erp
|
|
103 | 102 |
|
104 | 103 |
# Zugriff mit FastCGI: |
105 | 104 |
AliasMatch ^/web/path/to/lx-office-erp-fcgi/[^/]+\.pl /path/to/lx-office-erp/dispatcher.fpl |
... | ... | |
108 | 107 |
Dann ist unter C</web/path/to/lx-office-erp/> die normale Version erreichbar, |
109 | 108 |
und unter C</web/opath/to/lx-office-erp-fcgi/> die FastCGI Version. |
110 | 109 |
|
110 |
Achtung: |
|
111 |
|
|
112 |
Die AddHandler Direktive vom Apache ist entgegen der Dokumentation |
|
113 |
anscheinend nicht lokal auf das Verzeichnis beschr?nkt sondern global im |
|
114 |
vhost. |
|
115 |
|
|
116 |
=head2 Entwicklungsaspekte |
|
117 |
|
|
118 |
Wenn ?nderungen in der Konfiguration von Lx-Office gemacht werden, muss der |
|
119 |
Server neu gestartet werden. |
|
120 |
|
|
111 | 121 |
Bei der Entwicklung f?r FastCGI ist auf ein paar Fallstricke zu achten. Dadurch |
112 | 122 |
dass das Programm in einer Endlosschleife l?uft, m?ssen folgende Aspekte |
113 | 123 |
geachtet werden: |
... | ... | |
120 | 130 |
angezeigt werden. Die Lx-Office eigene C<$::form->error()> tut im Prinzip das |
121 | 131 |
Gleiche, mit ein paar Extraoptionen. C<warn> und C<exit> hingegen werden nicht |
122 | 132 |
abgefangen. C<warn> wird direkt nach STDERR, also in Server Log eine Nachricht |
123 |
schreiben, und C<exit> wird die Ausf?hrung beenden. |
|
133 |
schreiben (sofern in der Konfiguration nicht die Warnungen in das Lx-Office Log |
|
134 |
umgeleitet wurden), und C<exit> wird die Ausf?hrung beenden. |
|
124 | 135 |
|
125 | 136 |
Prinzipiell ist es kein Beinbruch, wenn sich der Prozess beendet, fcgi wird ihn |
126 | 137 |
sofort neu starten. Allerdings sollte das die Ausnahme sein. Quintessenz: Bitte |
127 |
kein C<warn> oder C<exit> benutzen, alle anderen Exceptionmechanismen sind ok.
|
|
138 |
kein C<exit> benutzen, alle anderen Exceptionmechanismen sind ok. |
|
128 | 139 |
|
129 | 140 |
=head3 Globale Variablen |
130 | 141 |
|
... | ... | |
133 | 144 |
Das ist besonders wichtig im C<$::cgi> und C<$::auth> Objekt, weil diese nicht |
134 | 145 |
gel?scht werden pro Instanz, sondern persistent gehalten werden. |
135 | 146 |
|
147 |
In C<SL::Dispatcher> gibt es einen sauber abgetrennten Block der alle |
|
148 |
kanonischen globalen Variablen listet und erkl?rt. Bitte keine anderen |
|
149 |
einf?hren ohne das sauber zu dokumentieren. |
|
150 |
|
|
136 | 151 |
Datenbankverbindungen wird noch ein Guide verfasst werden, wie man sichergeht, |
137 | 152 |
dass man die richtige erwischt. |
138 | 153 |
|
... | ... | |
140 | 155 |
|
141 | 156 |
Die kritischen Pfade des Programms sind die Belegmasken, und unter diesen ganz |
142 | 157 |
besonders die Verkaufsrechnungsmaske. Ein Aufruf der Rechnungsmaske in |
143 |
Lx-Office 2.4.3 stable dauert auf einem Core2duo mit 2GB Arbeitsspeicher und
|
|
158 |
Lx-Office 2.4.3 stable dauert auf einem Core2duo mit 4GB Arbeitsspeicher und
|
|
144 | 159 |
Ubuntu 9.10 eine halbe Sekunde. In der 2.6.0 sind es je nach Menge der |
145 | 160 |
definierten Variablen 1-2s. Ab der Moose/Rose::DB Version sind es 5-6s. |
146 | 161 |
|
147 |
Mit FastCGI ist die neuste Version auf 0,4 Sekunden selbst in den kritischen
|
|
162 |
Mit FastCGI ist die neuste Version auf 0,26 Sekunden selbst in den kritischen
|
|
148 | 163 |
Pfaden, unter 0,15 sonst. |
149 | 164 |
|
150 | 165 |
=head2 Bekannte Probleme |
151 | 166 |
|
167 |
=head3 Encoding Awareness |
|
168 |
|
|
169 |
UTF-8 kodierte Installationen sind sehr anf?llig gegen fehlerhfate Encodings |
|
170 |
unter FCGI. latin9 Installationen behandeln falsch kodierte Zeichen eher |
|
171 |
unwissend, und geben sie einfach weiter. UTF-8 verweigert bei fehlerhaften |
|
172 |
Programmpfaden kurzerhand aus ausliefern. Es wird noch daran gearbeitet alles |
|
173 |
Fehler da zu beseitigen. |
|
174 |
|
Auch abrufbar als: Unified diff
mod_fcgid Unterstützung
Good News everyone. Es stellt sich heraus, dass mod_fcgid wunderbar
funktioniert, wenn man nur die Beispiele auf deren Webseite ignoriert...
Dokumentation aktualisiert, und einen notwendigen Symlink hinzugefügt.