Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision c8a19933

Von Moritz Bunkus vor etwa 12 Jahren hinzugefügt

  • ID c8a19933e3a4b3b0174078b70f7ea9faac56d94e
  • Vorgänger 69480f28
  • Nachfolger faa7c313

Kapitel zur Installations-Übersicht ergänzt

Unterschiede anzeigen:

doc/html/ch02s05.html
1 1
<html><head>
2 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="kivitendo: 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="d0e592"></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 /kivitendo-erp/ /var/www/kiviteno-erp/
3
   <title>2.5. Anpassung der PostgreSQL-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="kivitendo: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch02.html" title="Kapitel 2. Installation und Grundkonfiguration"><link rel="prev" href="ch02s04.html" title="2.4. kivitendo-Konfigurationsdatei"><link rel="next" href="ch02s06.html" title="2.6. Webserver-Konfiguration"></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. Anpassung der PostgreSQL-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. Anpassung der PostgreSQL-Konfiguration"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Anpassung-der-PostgreSQL-Konfiguration"></a>2.5. Anpassung der PostgreSQL-Konfiguration</h2></div></div></div><p>PostgreSQL muss auf verschiedene Weisen angepasst werden.</p><div class="sect2" title="2.5.1. Zeichensätze/die Verwendung von UTF-8"><div class="titlepage"><div><div><h3 class="title"><a name="Zeichens%C3%A4tze-die-Verwendung-von-UTF-8"></a>2.5.1. Zeichensätze/die Verwendung von UTF-8</h3></div></div></div><p>Bei aktuellen Serverinstallationen braucht man hier meist nicht
4
	eingreifen</p><p>Dieses kann überprüft werden: ist das Encoding der Datenbank
5
	“template1” “UTF8”, so braucht man nichts weiteres diesbezüglich
6
	unternehmen. Zum Testen:
11 7

  
12
&lt;Directory /var/www/kivitendo-erp&gt;
13
 Options ExecCGI Includes FollowSymlinks
14
&lt;/Directory&gt;
8
        </p><pre class="programlisting">su postgres
9
echo '\l' | psql
10
exit </pre><p>
15 11

  
16
&lt;Directory /var/www/kivitendo-erp/users&gt;
17
 Order Deny,Allow
18
 Deny from All
19
&lt;/Directory&gt;</pre><p>Ersetzen Sie dabei die Pfade durch diejenigen, in die Sie vorher
20
        das kivitendo-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
21
          Plus ‘<code class="literal">+</code>’ gesetzt werden.</p></td></tr></table></div><p>Auf einigen Webservern werden manchmal die Grafiken und
22
        Style-Sheets nicht ausgeliefert. In solchen Fällen hat es oft
23
        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>
24
          kopiert:</p><p>
25
                  [<span class="citation"> FastCGI ist ein Standard für die Einbindung
26
          externer Software zur Generierung dynamischer Webseiten in einem
27
          Webserver. FastCGI ist vergleichbar zum Common Gateway Interface
28
          (CGI), wurde jedoch entwickelt, um dessen Performance-Probleme zu
29
          umgehen. </span>]
30
               </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 kivitendo eines ist) werden nicht statisch
31
          kompiliert. Stattdessen werden die Quelldateien bei jedem Start
32
          übersetzt, was bei kurzen Laufzeiten einen Großteil der Laufzeit
33
          ausmacht. Während SQL Ledger einen Großteil der Funktionalität in
34
          einzelne Module kapselt, um immer nur einen kleinen Teil laden zu
35
          müssen, ist die Funktionalität von kivitendo soweit gewachsen, dass
36
          immer mehr Module auf den Rest des Programms zugreifen. Zusätzlich
37
          benutzen wir umfangreiche Bibliotheken um Funktionaltät nicht selber
38
          entwickeln zu müssen, die zusätzliche Ladezeit kosten. All dies
39
          führt dazu dass ein kivitendo Aufruf der Kernmasken mittlerweile
40
          deutlich länger dauert als früher, und dass davon 90% für das Laden
41
          der Module verwendet wird.</p><p>Mit FastCGI werden nun die Module einmal geladen, und danach
42
          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
43
          Zeit nicht mehr weiter entwickelt wird. Im Folgenden wird auf
44
          mod_fastcgi nicht mehr explizit eingegangen.</p><p>Als Perl Backend wird das Modul <code class="filename">FCGI.pm</code>
45
          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-Versionen ab 0.69 und bis zu 0.71 inklusive sind extrem strict in der Behandlung von Unicode, und verweigern
46
            bestimmte Eingaben von kivitendo. Falls es Probleme mit Umlauten in Ihrere Installation gibt, muss zwingend Version 0.68 oder
47
            aber Version 0.72 und neuer eingesetzt werden.</p><p>Mit <a class="ulink" href="http://www.cpan.org" target="_top">CPAN</a> lässt sie sich die Vorgängerversion wie folgt
48
            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 kivitendo Installation unter FCGI
49
          laufen zu lassen, empfliehlt es sich die Installation ersteinmal
50
          unter CGI aufzusetzen. FCGI macht es nicht einfach Fehler zu
51
          debuggen die beim ersten aufsetzen auftreten können. Sollte die
52
          Installation schon funktionieren, lesen Sie weiter.</p><p>Zuerst muss das FastCGI-Modul aktiviert werden. Dies kann
53
          unter Debian/Ubuntu z.B. mit folgendem Befehl geschehen:</p><pre class="programlisting">a2enmod fcgid</pre><p>Die Konfiguration für die Verwendung von kivitendo mit FastCGI
54
          erfolgt durch Anpassung der vorhandenen <code class="function">Alias</code>-
55
          und <code class="function">Directory</code>-Direktiven. Dabei wird zwischen
56
          dem Installationspfad von kivitendo im Dateisystem
57
          ("<code class="filename">/path/to/kivitendo-erp</code>") und der URL
58
          unterschieden, unter der kivitendo im Webbrowser erreichbar ist
59
          ("<code class="filename">/url/for/kivitendo-erp</code>").</p><p>Folgender Konfigurationsschnipsel funktioniert mit
60
          mod_fastcgi:</p><pre class="programlisting">AliasMatch ^/url/for/kivitendo-erp/[^/]+\.pl /path/to/kivitendo-erp/dispatcher.fcgi
61
Alias       /url/for/kivitendo-erp/          /path/to/kivitendo-erp/
12
        Andernfalls ist es notwendig, einen neuen Datenbankcluster mit
13
        UTF-8-Encoding anzulegen und diesen zu verwenden. Unter Debian und
14
        Ubuntu kann dies z.B. für PostgreSQL 8.2 mit dem folgenden Befehl
15
        getan werden:</p><pre class="programlisting">pg_createcluster --locale=de_DE.UTF-8 --encoding=UTF-8 8.2 clustername</pre><p>Die Datenbankversionsnummer muss an die tatsächlich verwendete
16
        Versionsnummer angepasst werden.</p><p>Unter anderen Distributionen gibt es ähnliche Methoden.</p><p>Wurde PostgreSQL nicht mit UTF-8 als Encoding initialisiert und
17
        ist ein Neuanlegen eines weiteren Clusters nicht möglich, so kann
18
        kivitendo mit ISO-8859-15 als Encoding betrieben werden.</p><p>Das Encoding einer Datenbank kann in <span class="command"><strong>psql</strong></span> mit
19
        <code class="literal">\l</code> geprüft werden.</p></div><div class="sect2" title="2.5.2. Änderungen an Konfigurationsdateien"><div class="titlepage"><div><div><h3 class="title"><a name="%C3%84nderungen-an-Konfigurationsdateien"></a>2.5.2. Änderungen an Konfigurationsdateien</h3></div></div></div><p>In der Datei <code class="filename">postgresql.conf</code>, die je nach
20
        Distribution in verschiedenen Verzeichnissen liegen kann (z.B.
21
        <code class="filename">/var/lib/pgsql/data/</code> oder
22
        <code class="filename">/etc/postgresql/</code>, muss sichergestellt werden,
23
        dass TCP/IP-Verbindungen aktiviert sind. Das Verhalten wird über den
24
        Parameter <code class="varname">listen_address</code> gesteuert. Laufen
25
        PostgreSQL und kivitendo auf demselben Rechner, so kann dort der Wert
26
        <code class="literal">localhost</code> verwendet werden. Andernfalls müssen
27
        Datenbankverbindungen auch von anderen Rechnern aus zugelassen werden,
28
        was mit dem Wert <code class="literal">*</code> geschieht.</p><p>In der Datei <code class="filename">pg_hba.conf</code>, die im gleichen
29
        Verzeichnis wie die <code class="filename">postgresql.conf</code> zu finden
30
        sein sollte, müssen die Berichtigungen für den Zugriff geändert
31
	werden. Hier gibt es mehrere Möglichkeiten. sinnvoll ist es nur die
32
	nögiten Verbindungen immer zuzulassen, für eine lokal laufenden
33
	Datenbank zum Beispiel:</p><pre class="programlisting">local all kivitendo password
34
host all kivitendo 127.0.0.1 255.255.255.255 password</pre></div><div class="sect2" title="2.5.3. Erweiterung für servergespeicherte Prozeduren"><div class="titlepage"><div><div><h3 class="title"><a name="Erweiterung-f%C3%BCr-servergespeicherte-Prozeduren"></a>2.5.3. Erweiterung für servergespeicherte Prozeduren</h3></div></div></div><p>In der Datenbank <code class="literal">template1</code> muss die
35
        Unterstützung für servergespeicherte Prozeduren eingerichet werden.
36
        Melden Sie sich dafür als Benutzer “postgres” an der Datenbank an:
37
        </p><pre class="programlisting">su - postgres
38
psql template1</pre><p>
62 39

  
63
&lt;Directory /path/to/kivitendo-erp&gt;
64
  AllowOverride All
65
  Options ExecCGI Includes FollowSymlinks
66
  Order Allow,Deny
67
  Allow from All
68
&lt;/Directory&gt;
69

  
70
&lt;DirectoryMatch /path/to/kivitendo-erp/users&gt;
71
  Order Deny,Allow
72
  Deny from All
73
&lt;/DirectoryMatch&gt;</pre><p>Seit mod_fcgid-Version 2.6.3 gelten sehr kleine Grenzen für
74
          die maximale Größe eines Requests. Diese sollte wie folgt
75
          hochgesetzt werden:</p><pre class="programlisting">FcgidMaxRequestLen 10485760</pre><p>Das ganze sollte dann so aussehen:</p><pre class="programlisting">AddHandler fcgid-script .fpl
76
AliasMatch ^/url/for/kivitendo-erp/[^/]+\.pl /path/to/kivitendo-erp/dispatcher.fpl
77
Alias       /url/for/kivitendo-erp/          /path/to/kivitendo-erp/
78
FcgidMaxRequestLen 10485760
79

  
80
&lt;Directory /path/to/kivitendo-erp&gt;
81
  AllowOverride All
82
  Options ExecCGI Includes FollowSymlinks
83
  Order Allow,Deny
84
  Allow from All
85
&lt;/Directory&gt;
86

  
87
&lt;DirectoryMatch /path/to/kivitendo-erp/users&gt;
88
  Order Deny,Allow
89
  Deny from All
90
&lt;/DirectoryMatch&gt;</pre><p>Hierdurch wird nur ein zentraler Dispatcher gestartet. Alle
91
          Zugriffe auf die einzelnen Scripte werden auf diesen umgeleitet.
92
          Dadurch, dass zur Laufzeit öfter mal Scripte neu geladen werden,
93
          gibt es hier kleine Performance-Einbußen.</p><p>Es ist möglich, die gleiche kivitendo Version parallel unter
94
          CGI und FastCGI zu betreiben. Dafür bleiben die Directorydirektiven
95
          wie oben beschrieben, die URLs werden aber umgeleitet:</p><pre class="programlisting"># Zugriff über CGI
96
Alias       /url/for/kivitendo-erp                /path/to/kivitendo-erp
97

  
98
# Zugriff mit mod_fcgid:
99
AliasMatch ^/url/for/kivitendo-erp-fcgid/[^/]+\.pl /path/to/kivitendo-erp/dispatcher.fpl
100
Alias       /url/for/kivitendo-erp-fcgid/          /path/to/kivitendo-erp/</pre><p>Dann ist unter <code class="filename">/url/for/kivitendo-erp/</code>
101
          die normale Version erreichbar, und unter
102
          <code class="constant">/url/for/kivitendo-erp-fcgid/</code> die
103
          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>
40
        führen Sie die folgenden Kommandos aus:</p><pre class="programlisting">create language 'plpgsql';
41
\q</pre></div><div class="sect2" title="2.5.4. Datenbankbenutzer anlegen"><div class="titlepage"><div><div><h3 class="title"><a name="Datenbankbenutzer-anlegen"></a>2.5.4. Datenbankbenutzer anlegen</h3></div></div></div><p>Wenn Sie nicht den Datenbanksuperuser “postgres” zum Zugriff
42
        benutzen wollen, so sollten Sie bei PostgreSQL einen neuen Benutzer
43
        anlegen. Ein Beispiel, wie Sie einen neuen Benutzer anlegen
44
        können:</p><p>Die Frage, ob der neue User Superuser sein soll, können Sie mit nein
45
	beantworten, genauso ist die Berechtigung neue User (Roles) zu
46
	generieren nicht nötig.</p><pre class="programlisting">su - postgres
47
createuser -d -P kivitendo
48
exit</pre><p>Wenn Sie später einen Datenbankzugriff konfigurieren, verändern
49
        Sie den evtl. voreingestellten Benutzer “postgres” auf “kivitendo” bzw.
50
        den hier gewählten Benutzernamen.</p></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. kivitendo-Konfigurationsdatei&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. Webserver-Konfiguration</td></tr></table></div></body></html>

Auch abrufbar als: Unified diff