HTML-Version der Dokumentation in UTF-8 encodieren
[kivitendo-erp.git] / doc / html / ch02s05.html
1 <html><head>
2       <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
3    <title>2.5. Webserver-Konfiguration</title><link rel="stylesheet" type="text/css" href="style.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1-RC2"><link rel="home" href="index.html" title="Lx-Office: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch02.html" title="Kapitel 2. Installation und Grundkonfiguration"><link rel="prev" href="ch02s04.html" title="2.4. Anpassung der PostgreSQL-Konfiguration"><link rel="next" href="ch02s06.html" title="2.6. Der Task-Server"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">2.5. Webserver-Konfiguration</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s04.html">Zurück</a>&nbsp;</td><th width="60%" align="center">Kapitel 2. Installation und Grundkonfiguration</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="ch02s06.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="2.5. Webserver-Konfiguration"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Apache-Konfiguration"></a>2.5. Webserver-Konfiguration</h2></div></div></div><div class="sect2" title="2.5.1. Grundkonfiguration mittels CGI"><div class="titlepage"><div><div><h3 class="title"><a name="d0e511"></a>2.5.1. Grundkonfiguration mittels CGI</h3></div></div></div><div class="note" title="Anmerkung" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Anmerkung]" src="../../../../system/docbook-xsl/images/note.png"></td><th align="left">Anmerkung</th></tr><tr><td align="left" valign="top"><p>Für einen deutlichen Performanceschub sorgt die Ausführung
4           mittels FastCGI/FCGI. Die Einrichtung wird ausführlich im Abschnitt
5           <a class="xref" href="ch02s05.html#Apache-Konfiguration.FCGI" title="2.5.2. Konfiguration für FastCGI/FCGI">Konfiguration für FastCGI/FCGI</a> beschrieben.</p></td></tr></table></div><p>Der Zugriff auf das Programmverzeichnis muss in der Apache
6         Webserverkonfigurationsdatei <code class="literal">httpd.conf</code> eingestellt
7         werden. Fügen Sie den folgenden Abschnitt dieser Datei oder einer
8         anderen Datei hinzu, die beim Starten des Webservers eingelesen
9         wird:</p><pre class="programlisting">AddHandler cgi-script .pl
10 Alias /lx-erp/ /var/www/lx-erp/
11
12 &lt;Directory /var/www/lx-erp&gt;
13  Options ExecCGI
14  Includes FollowSymlinks
15 &lt;/Directory&gt;
16
17 &lt;Directory /var/www/lx-erp/users&gt;
18  Order Deny,Allow
19  Deny from All
20 &lt;/Directory&gt;</pre><p>Ersetzen Sie dabei die Pfade durch diejenigen, in die Sie vorher
21         das Lx-Office-Archiv entpacket haben.</p><div class="note" title="Anmerkung" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Anmerkung]" src="../../../../system/docbook-xsl/images/note.png"></td><th align="left">Anmerkung</th></tr><tr><td align="left" valign="top"><p>Vor den einzelnen Optionen muss bei einigen Distributionen ein
22           Plus ‘<code class="literal">+</code>’ gesetzt werden.</p></td></tr></table></div><p>Auf einigen Webservern werden manchmal die Grafiken und
23         Style-Sheets nicht ausgeliefert. In solchen Fällen hat es oft
24         geholfen, die folgende Option in die Konfiguration aufzunehmen:</p><pre class="programlisting">EnableSendfile Off</pre></div><div class="sect2" title="2.5.2. Konfiguration für FastCGI/FCGI"><div class="titlepage"><div><div><h3 class="title"><a name="Apache-Konfiguration.FCGI"></a>2.5.2. Konfiguration für FastCGI/FCGI</h3></div></div></div><div class="sect3" title="2.5.2.1. Was ist FastCGI?"><div class="titlepage"><div><div><h4 class="title"><a name="Apache-Konfiguration.FCGI.WasIstEs"></a>2.5.2.1. Was ist FastCGI?</h4></div></div></div><p>Direkt aus <a class="ulink" href="http://de.wikipedia.org/wiki/FastCGI" target="_top">Wikipedia</a>
25           kopiert:</p><p>
26                   [<span class="citation"> FastCGI ist ein Standard für die Einbindung
27           externer Software zur Generierung dynamischer Webseiten in einem
28           Webserver. FastCGI ist vergleichbar zum Common Gateway Interface
29           (CGI), wurde jedoch entwickelt, um dessen Performance-Probleme zu
30           umgehen. </span>]
31                </p></div><div class="sect3" title="2.5.2.2. Warum FastCGI?"><div class="titlepage"><div><div><h4 class="title"><a name="Apache-Konfiguration.FCGI.Warum"></a>2.5.2.2. Warum FastCGI?</h4></div></div></div><p>Perl Programme (wie Lx-Office eines ist) werden nicht statisch
32           kompiliert. Stattdessen werden die Quelldateien bei jedem Start
33           übersetzt, was bei kurzen Laufzeiten einen Großteil der Laufzeit
34           ausmacht. Während SQL Ledger einen Großteil der Funktionalität in
35           einzelne Module kapselt, um immer nur einen kleinen Teil laden zu
36           müssen, ist die Funktionalität von Lx-Office soweit gewachsen, dass
37           immer mehr Module auf den Rest des Programms zugreifen. Zusätzlich
38           benutzen wir umfangreiche Bibliotheken um Funktionaltät nicht selber
39           entwickeln zu müssen, die zusätzliche Ladezeit kosten. All dies
40           führt dazu dass ein Lx-Office Aufruf der Kernmasken mittlerweile
41           deutlich länger dauert als früher, und dass davon 90% für das Laden
42           der Module verwendet wird.</p><p>Mit FastCGI werden nun die Module einmal geladen, und danach
43           wird nur die eigentliche Programmlogik ausgeführt.</p></div><div class="sect3" title="2.5.2.3. Getestete Kombinationen aus Webservern und Plugin"><div class="titlepage"><div><div><h4 class="title"><a name="Apache-Konfiguration.FCGI.WebserverUndPlugin"></a>2.5.2.3. Getestete Kombinationen aus Webservern und Plugin</h4></div></div></div><p>Folgende Kombinationen sind getestet:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Apache 2.2.11 (Ubuntu) und mod_fcgid.</p></li><li class="listitem"><p>Apache 2.2.11 (Ubuntu) und mod_fastcgi.</p></li></ul></div><p>Dabei wird mod_fcgid empfohlen, weil mod_fastcgi seit geraumer
44           Zeit nicht mehr weiter entwickelt wird. Im Folgenden wird auf
45           mod_fastcgi nicht mehr explizit eingegangen.</p><p>Als Perl Backend wird das Modul <code class="filename">FCGI.pm</code>
46           verwendet.</p><div class="warning" title="Warnung" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Warning"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Warnung]" src="../../../../system/docbook-xsl/images/warning.png"></td><th align="left">Warnung</th></tr><tr><td align="left" valign="top"><p>FCGI 0.69 und höher ist extrem strict in der Behandlung von
47             Unicode, und verweigert bestimmte Eingaben von Lx-Office. Falls es
48             Probleme mit Umlauten in Ihrere Installation gibt, muss auf die
49             Vorgängerversion FCGI 0.68 ausgewichen werden.</p><p>Mit CPAN lässt sie sich die Vorgängerversion wie folgt
50             installieren:</p><pre class="programlisting">force install M/MS/MSTROUT/FCGI-0.68.tar.gz</pre></td></tr></table></div></div><div class="sect3" title="2.5.2.4. Konfiguration des Webservers"><div class="titlepage"><div><div><h4 class="title"><a name="Apache-Konfiguration.FCGI.Konfiguration"></a>2.5.2.4. Konfiguration des Webservers</h4></div></div></div><p>Bevor Sie versuchen, eine Lx-Office Installation unter FCGI
51           laufen zu lassen, empfliehlt es sich die Installation ersteinmal
52           unter CGI aufzusetzen. FCGI macht es nicht einfach Fehler zu
53           debuggen die beim ersten aufsetzen auftreten können. Sollte die
54           Installation schon funktionieren, lesen Sie weiter.</p><p>Zuerst muss das FastCGI-Modul aktiviert werden. Dies kann
55           unter Debian/Ubuntu z.B. mit folgendem Befehl geschehen:</p><pre class="programlisting">a2enmod fcgid</pre><p>Die Konfiguration für die Verwendung von Lx-Office mit FastCGI
56           erfolgt durch Anpassung der vorhandenen <code class="function">Alias</code>-
57           und <code class="function">Directory</code>-Direktiven. Dabei wird zwischen
58           dem Installationspfad von Lx-Office im Dateisystem
59           ("<code class="filename">/path/to/lx-office-erp</code>") und der URL
60           unterschieden, unter der Lx-Office im Webbrowser erreichbar ist
61           ("<code class="filename">/url/for/lx-office-erp</code>").</p><p>Folgender Konfigurationsschnipsel funktioniert mit
62           mod_fastcgi:</p><pre class="programlisting">AliasMatch ^/url/for/lx-office-erp/[^/]+\.pl /path/to/lx-office-erp/dispatcher.fcgi
63 Alias       /url/for/lx-office-erp/          /path/to/lx-office-erp/
64
65 &lt;Directory /path/to/lx-office-erp&gt;
66   AllowOverride All
67   Options ExecCGI Includes FollowSymlinks
68   Order Allow,Deny
69   Allow from All
70 &lt;/Directory&gt;
71
72 &lt;DirectoryMatch /path/to/lx-office-erp/users&gt;
73   Order Deny,Allow
74   Deny from All
75 &lt;/DirectoryMatch&gt;</pre><p>Seit mod_fcgid-Version 2.6.3 gelten sehr kleine Grenzen für
76           die maximale Größe eines Requests. Diese sollte wie folgt
77           hochgesetzt werden:</p><pre class="programlisting">FcgidMaxRequestLen 10485760</pre><p>Das ganze sollte dann so aussehen:</p><pre class="programlisting">AddHandler fcgid-script .fpl
78 AliasMatch ^/url/for/lx-office-erp/[^/]+\.pl /path/to/lx-office-erp/dispatcher.fpl
79 Alias       /url/for/lx-office-erp/          /path/to/lx-office-erp/
80 FcgidMaxRequestLen 10485760
81
82 &lt;Directory /path/to/lx-office-erp&gt;
83   AllowOverride All
84   Options ExecCGI Includes FollowSymlinks
85   Order Allow,Deny
86   Allow from All
87 &lt;/Directory&gt;
88
89 &lt;DirectoryMatch /path/to/lx-office-erp/users&gt;
90   Order Deny,Allow
91   Deny from All
92 &lt;/DirectoryMatch&gt;</pre><p>Hierdurch wird nur ein zentraler Dispatcher gestartet. Alle
93           Zugriffe auf die einzelnen Scripte werden auf diesen umgeleitet.
94           Dadurch, dass zur Laufzeit öfter mal Scripte neu geladen werden,
95           gibt es hier kleine Performance-Einbußen.</p><p>Es ist möglich, die gleiche Lx-Office Version parallel unter
96           CGI und FastCGI zu betreiben. Dafür bleiben die Directorydirektiven
97           wie oben beschrieben, die URLs werden aber umgeleitet:</p><pre class="programlisting"># Zugriff über CGI
98 Alias       /url/for/lx-office-erp                /path/to/lx-office-erp
99
100 # Zugriff mit mod_fcgid:
101 AliasMatch ^/url/for/lx-office-erp-fcgid/[^/]+\.pl /path/to/lx-office-erp/dispatcher.fpl
102 Alias       /url/for/lx-office-erp-fcgid/          /path/to/lx-office-erp/</pre><p>Dann ist unter <code class="filename">/url/for/lx-office-erp/</code>
103           die normale Version erreichbar, und unter
104           <code class="constant">/url/for/lx-office-erp-fcgid/</code> die
105           FastCGI-Version.</p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02s04.html">Zurück</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="ch02.html">Nach oben</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="ch02s06.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">2.4. Anpassung der PostgreSQL-Konfiguration&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Zum Anfang</a></td><td width="40%" align="right" valign="top">&nbsp;2.6. Der Task-Server</td></tr></table></div></body></html>