Revision a07567c2
Von Sven Schöling vor mehr als 14 Jahren hinzugefügt
doc/INSTALL.fcgi | ||
---|---|---|
1 | 1 |
|
2 |
1. Was ist FCGI?
|
|
2 |
Diese Datei ist in Plain Old Documentation geschrieben. Mit
|
|
3 | 3 |
|
4 |
> perldoc INSTALL.fcgi |
|
4 | 5 |
|
6 |
ist sie deutlich leichter zu lesen. |
|
5 | 7 |
|
6 |
2. Kombinationen aus Webservern und Plugin. |
|
8 |
=head1 FastCGI f?r Lx-Office |
|
9 |
|
|
10 |
=head2 Was ist FastCGI? |
|
11 |
|
|
12 |
Direkt aus L<http://de.wikipedia.org/wiki/FastCGI> kopiert: |
|
13 |
|
|
14 |
FastCGI ist ein Standard f?r die Einbindung externer Software zur Generierung |
|
15 |
dynamischer Webseiten in einem Webserver. FastCGI ist vergleichbar zum Common |
|
16 |
Gateway Interface (CGI), wurde jedoch entwickelt, um dessen |
|
17 |
Performance-Probleme zu umgehen. |
|
18 |
|
|
19 |
|
|
20 |
=head2 Warum FastCGI? |
|
21 |
|
|
22 |
Perl Programme (wie Lx-Office eines ist) werden nicht statisch kompiliert. |
|
23 |
Stattdessen werden die Quelldateien bei jedem Start ?bersetzt, was bei kurzen |
|
24 |
Laufzeiten einen Gro?teil der Laufzeit ausmacht. W?hrend SQL Ledger einen |
|
25 |
Gro?teil der Funktionalit?t in einzelne Module kapselt, um immer nur einen |
|
26 |
kleinen Teil laden zu m?ssen, ist die Funktionalit?t von Lx-Office soweit |
|
27 |
gewachsen, dass immer mehr Module auf den Rest des Programms zugreifen. |
|
28 |
Zus?tzlich benutzen wir umfangreiche Bibliotheken um Funktionalt?t nicht selber |
|
29 |
entwickeln zu m?ssen, die zus?tzliche Ladezeit kosten. All dies f?hrt dazu dass |
|
30 |
ein Lx-Office Aufruf der Kernmasken mittlerweile deutlich l?nger dauert als |
|
31 |
fr?her, und dass davon 90% f?r das Laden der Module verwendet wird. |
|
32 |
|
|
33 |
Mit FastCGI werden nun die Module einmal geladen, und danach wird nur die |
|
34 |
eigentliche Programmlogik ausgef?hrt. |
|
35 |
|
|
36 |
=head2 Kombinationen aus Webservern und Plugin. |
|
7 | 37 |
|
8 | 38 |
Folgende Kombinationen sind getestet: |
9 | 39 |
|
10 |
- Apache 2.2.11 (Ubuntu) und mod_fastcgi.
|
|
40 |
* Apache 2.2.11 (Ubuntu) und mod_fastcgi.
|
|
11 | 41 |
|
12 | 42 |
Folgende Kombinationen funktionieren nicht: |
13 | 43 |
|
14 |
- Apacje 2.2.11 (Ubuntu) + mod_fcgid:
|
|
44 |
* Apache 2.2.11 (Ubuntu) + mod_fcgid:
|
|
15 | 45 |
|
16 | 46 |
|
17 | 47 |
|
18 |
3. Konfiguration des Webservers.
|
|
48 |
=head2 Konfiguration des Webservers.
|
|
19 | 49 |
|
20 | 50 |
Variante 1: |
21 | 51 |
|
... | ... | |
23 | 53 |
|
24 | 54 |
Variante 2: |
25 | 55 |
|
26 |
AliasMatch ^/web/path/to/lx-office-erp/[^/]+\.pl /path/to/lx-office-erp/dispatcher.fpl |
|
56 |
AliasMatch ^/web/path/to/lx-office-erp/[^/]+\.pl /path/to/lx-office-erp/dispatcher.fpl |
|
57 |
|
|
58 |
<Directory /path/to/lx-office-erp> |
|
59 |
AllowOverride All |
|
60 |
AddHandler fastcgi-script .fpl |
|
61 |
Options ExecCGI Includes FollowSymlinks |
|
62 |
Order Allow,Deny |
|
63 |
Allow from All |
|
64 |
</Directory> |
|
65 |
|
|
66 |
<DirectoryMatch //.*/users> |
|
67 |
Order Deny,Allow |
|
68 |
Deny from All |
|
69 |
</DirectoryMatch> |
|
70 |
|
|
71 |
|
|
72 |
Variante 1 startet einfach jeden Lx-Office Request als fcgi Prozess. F?r sehr |
|
73 |
gro?e Installationen ist das die schnellste Version, ben?tigt aber sehr viel |
|
74 |
Arbeitspseicher (ca. 2GB). |
|
75 |
|
|
76 |
Variante 2 startet nur einen zentralen Dispatcher und lenkt alle Scripte auf |
|
77 |
diesen. Dadurch dass zur Laufzeit ?fter mal Scripte neu geladen werden gibt es |
|
78 |
hier kleine Performance Einbu?en. |
|
79 |
|
|
27 | 80 |
|
28 |
<Directory /path/to/lx-office-erp> |
|
29 |
AllowOverride All |
|
30 |
AddHandler fastcgi-script .fpl |
|
31 |
Options ExecCGI Includes FollowSymlinks |
|
32 |
Order Allow,Deny |
|
33 |
Allow from All |
|
34 |
</Directory> |
|
81 |
=head2 M?gliche Fallstricke |
|
35 | 82 |
|
36 |
<DirectoryMatch //.*/users> |
|
37 |
Order Deny,Allow |
|
38 |
Deny from All |
|
39 |
</DirectoryMatch> |
|
83 |
Die AddHandler Direktive vom Apache ist entgegen der Dokumentation |
|
84 |
anscheinend nicht lokal auf das Verzeichnis beschr?nkt sondern global im |
|
85 |
vhost. |
|
40 | 86 |
|
87 |
Wenn ?nderungen in der Konfiguration von Lx-Office gemacht werden, oder wenn |
|
88 |
Templates editiert werden muss der Server neu gestartet werden. |
|
41 | 89 |
|
42 | 90 |
|
43 | 91 |
|
44 |
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).
|
|
92 |
=head2 Performance und Statistiken
|
|
45 | 93 |
|
46 |
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. |
|
94 |
Die kritischen Pfade des Programms sind die Belegmasken, und unter diesen ganz |
|
95 |
besonders die Verkaufsrechnungsmaske. Ein Aufruf der Rechnungsmaske in |
|
96 |
Lx-Office 2.4.3 stable dauert auf einem Core2duo mit 2GB Arbeitsspeicher und |
|
97 |
Ubuntu 9.10 eine halbe Sekunde. In der 2.6.0 sind es je nach Menge der |
|
98 |
definierten Variablen 1-2s. Ab der Moose/Rose::DB Version sind es 5-6s. |
|
47 | 99 |
|
100 |
Mit FastCGI ist die neuste Version auf 0,4 Sekunden selbst in den kritischen |
|
101 |
Pfaden, unter 0,15 sonst. |
|
48 | 102 |
|
103 |
=head2 Bekannte Probleme |
|
49 | 104 |
|
50 |
4. TODO |
|
105 |
Bei mehreren Benutzern scheint ab und zu eine Datenbankverbidung von Rose::DB |
|
106 |
in den falschen Benutzer zu geraten. Das ist ein kritischer Bug und muss gefixt |
|
107 |
werden. |
|
51 | 108 |
|
109 |
Bei Administrativen T?tigkeiten werden in seltenen F?llen die Locales nicht |
|
110 |
richtig geladen und die Maske erscheint in Englisch. |
Auch abrufbar als: Unified diff
Dokumentation
Conflicts: