X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/9d218dc8b07ff4f9be9589cb3246e50653e2b6e2..HEAD:/doc/html/ch02s05.html diff --git a/doc/html/ch02s05.html b/doc/html/ch02s05.html index 523411b3b..e040d5f0f 100644 --- a/doc/html/ch02s05.html +++ b/doc/html/ch02s05.html @@ -1,103 +1,103 @@ - 2.5. Webserver-Konfiguration

2.5. Webserver-Konfiguration

2.5.1. Grundkonfiguration mittels CGI

[Anmerkung]Anmerkung

Für einen deutlichen Performanceschub sorgt die Ausführung - mittels FastCGI/FCGI. Die Einrichtung wird ausführlich im Abschnitt - Konfiguration für FastCGI/FCGI beschrieben.

Der Zugriff auf das Programmverzeichnis muss in der Apache - Webserverkonfigurationsdatei httpd.conf eingestellt - werden. Fügen Sie den folgenden Abschnitt dieser Datei oder einer - anderen Datei hinzu, die beim Starten des Webservers eingelesen - wird:

AddHandler cgi-script .pl
-Alias /kivitendo-erp/ /var/www/kiviteno-erp/
+   2.5. kivitendo-Konfigurationsdatei

2.5. kivitendo-Konfigurationsdatei

2.5.1. Einführung

In kivitendo gibt es nur noch eine Konfigurationsdatei, die + benötigt wird: config/kivitendo.conf (kurz: "die + Hauptkonfigurationsdatei"). Diese muss bei der Erstinstallation von + kivitendo bzw. der Migration von älteren Versionen angelegt + werden.

Als Vorlage dient die Datei + config/kivitendo.conf.default (kurz: "die + Default-Datei"):

$ cp config/kivitendo.conf.default config/kivitendo.conf

Die Default-Datei wird immer zuerst eingelesen. Werte, die in + der Hauptkonfigurationsdatei stehen, überschreiben die Werte aus der + Default-Datei. Die Hauptkonfigurationsdatei muss also nur die + Abschnitte und Werte enthalten, die von denen der Default-Datei + abweichen.

[Anmerkung]Anmerkung

Vor der Umbenennung in kivitendo hieß diese Datei noch + config/lx_office.conf. Aus Gründen der + Kompatibilität wird diese Datei eingelesen, sofern die Datei + config/kivitendo.conf nicht existiert.

Diese Hauptkonfigurationsdatei ist dann eine + installationsspezifische Datei, d.h. sie enthält bspw. lokale + Passwörter und wird auch nicht im Versionsmanagement (git) + verwaltet.

Die Konfiguration ist ferner serverabhängig, d.h. für alle + Mandaten, bzw. Datenbanken gleich.

2.5.2. Abschnitte und Parameter

Die Konfigurationsdatei besteht aus mehreren Teilen, die + entsprechend kommentiert sind:

Die üblicherweise wichtigsten Parameter, die am Anfang + einzustellen oder zu kontrollieren sind, sind:

[authentication]
+admin_password = geheim
 
-<Directory /var/www/kivitendo-erp>
- Options ExecCGI Includes FollowSymlinks
-</Directory>
+[authentication/database]
+host     = localhost
+port     = 5432
+db       = kivitendo_auth
+user     = postgres
+password =
 
-<Directory /var/www/kivitendo-erp/users>
- Order Deny,Allow
- Deny from All
-</Directory>

Ersetzen Sie dabei die Pfade durch diejenigen, in die Sie vorher - das kivitendo-Archiv entpacket haben.

[Anmerkung]Anmerkung

Vor den einzelnen Optionen muss bei einigen Distributionen ein - Plus ‘+’ gesetzt werden.

Auf einigen Webservern werden manchmal die Grafiken und - Style-Sheets nicht ausgeliefert. In solchen Fällen hat es oft - geholfen, die folgende Option in die Konfiguration aufzunehmen:

EnableSendfile Off

2.5.2. Konfiguration für FastCGI/FCGI

2.5.2.1. Was ist FastCGI?

Direkt aus Wikipedia - kopiert:

- [ FastCGI ist ein Standard für die Einbindung - externer Software zur Generierung dynamischer Webseiten in einem - Webserver. FastCGI ist vergleichbar zum Common Gateway Interface - (CGI), wurde jedoch entwickelt, um dessen Performance-Probleme zu - umgehen. ] -

2.5.2.2. Warum FastCGI?

Perl Programme (wie kivitendo eines ist) werden nicht statisch - kompiliert. Stattdessen werden die Quelldateien bei jedem Start - übersetzt, was bei kurzen Laufzeiten einen Großteil der Laufzeit - ausmacht. Während SQL Ledger einen Großteil der Funktionalität in - einzelne Module kapselt, um immer nur einen kleinen Teil laden zu - müssen, ist die Funktionalität von kivitendo soweit gewachsen, dass - immer mehr Module auf den Rest des Programms zugreifen. Zusätzlich - benutzen wir umfangreiche Bibliotheken um Funktionaltät nicht selber - entwickeln zu müssen, die zusätzliche Ladezeit kosten. All dies - führt dazu dass ein kivitendo Aufruf der Kernmasken mittlerweile - deutlich länger dauert als früher, und dass davon 90% für das Laden - der Module verwendet wird.

Mit FastCGI werden nun die Module einmal geladen, und danach - wird nur die eigentliche Programmlogik ausgeführt.

2.5.2.3. Getestete Kombinationen aus Webservern und Plugin

Folgende Kombinationen sind getestet:

  • Apache 2.2.11 (Ubuntu) und mod_fcgid.

  • Apache 2.2.11 (Ubuntu) und mod_fastcgi.

Dabei wird mod_fcgid empfohlen, weil mod_fastcgi seit geraumer - Zeit nicht mehr weiter entwickelt wird. Im Folgenden wird auf - mod_fastcgi nicht mehr explizit eingegangen.

Als Perl Backend wird das Modul FCGI.pm - verwendet.

[Warnung]Warnung

FCGI-Versionen ab 0.69 und bis zu 0.71 inklusive sind extrem strict in der Behandlung von Unicode, und verweigern - bestimmte Eingaben von kivitendo. Falls es Probleme mit Umlauten in Ihrere Installation gibt, muss zwingend Version 0.68 oder - aber Version 0.72 und neuer eingesetzt werden.

Mit CPAN lässt sie sich die Vorgängerversion wie folgt - installieren:

force install M/MS/MSTROUT/FCGI-0.68.tar.gz

2.5.2.4. Konfiguration des Webservers

Bevor Sie versuchen, eine kivitendo Installation unter FCGI - laufen zu lassen, empfliehlt es sich die Installation ersteinmal - unter CGI aufzusetzen. FCGI macht es nicht einfach Fehler zu - debuggen die beim ersten aufsetzen auftreten können. Sollte die - Installation schon funktionieren, lesen Sie weiter.

Zuerst muss das FastCGI-Modul aktiviert werden. Dies kann - unter Debian/Ubuntu z.B. mit folgendem Befehl geschehen:

a2enmod fcgid

Die Konfiguration für die Verwendung von kivitendo mit FastCGI - erfolgt durch Anpassung der vorhandenen Alias- - und Directory-Direktiven. Dabei wird zwischen - dem Installationspfad von kivitendo im Dateisystem - ("/path/to/kivitendo-erp") und der URL - unterschieden, unter der kivitendo im Webbrowser erreichbar ist - ("/url/for/kivitendo-erp").

Folgender Konfigurationsschnipsel funktioniert mit - mod_fastcgi:

AliasMatch ^/url/for/kivitendo-erp/[^/]+\.pl /path/to/kivitendo-erp/dispatcher.fcgi
-Alias       /url/for/kivitendo-erp/          /path/to/kivitendo-erp/
-
-<Directory /path/to/kivitendo-erp>
-  AllowOverride All
-  Options ExecCGI Includes FollowSymlinks
-  Order Allow,Deny
-  Allow from All
-</Directory>
-
-<DirectoryMatch /path/to/kivitendo-erp/users>
-  Order Deny,Allow
-  Deny from All
-</DirectoryMatch>

Seit mod_fcgid-Version 2.6.3 gelten sehr kleine Grenzen für - die maximale Größe eines Requests. Diese sollte wie folgt - hochgesetzt werden:

FcgidMaxRequestLen 10485760

Das ganze sollte dann so aussehen:

AddHandler fcgid-script .fpl
-AliasMatch ^/url/for/kivitendo-erp/[^/]+\.pl /path/to/kivitendo-erp/dispatcher.fpl
-Alias       /url/for/kivitendo-erp/          /path/to/kivitendo-erp/
-FcgidMaxRequestLen 10485760
-
-<Directory /path/to/kivitendo-erp>
-  AllowOverride All
-  Options ExecCGI Includes FollowSymlinks
-  Order Allow,Deny
-  Allow from All
-</Directory>
-
-<DirectoryMatch /path/to/kivitendo-erp/users>
-  Order Deny,Allow
-  Deny from All
-</DirectoryMatch>

Hierdurch wird nur ein zentraler Dispatcher gestartet. Alle - Zugriffe auf die einzelnen Scripte werden auf diesen umgeleitet. - Dadurch, dass zur Laufzeit öfter mal Scripte neu geladen werden, - gibt es hier kleine Performance-Einbußen.

Es ist möglich, die gleiche kivitendo Version parallel unter - CGI und FastCGI zu betreiben. Dafür bleiben die Directorydirektiven - wie oben beschrieben, die URLs werden aber umgeleitet:

# Zugriff über CGI
-Alias       /url/for/kivitendo-erp                /path/to/kivitendo-erp
-
-# Zugriff mit mod_fcgid:
-AliasMatch ^/url/for/kivitendo-erp-fcgid/[^/]+\.pl /path/to/kivitendo-erp/dispatcher.fpl
-Alias       /url/for/kivitendo-erp-fcgid/          /path/to/kivitendo-erp/

Dann ist unter /url/for/kivitendo-erp/ - die normale Version erreichbar, und unter - /url/for/kivitendo-erp-fcgid/ die - FastCGI-Version.

\ No newline at end of file +[system] +default_manager = german

Für kivitendo Installationen in der Schweiz sollte hier + german durch swiss ersetzt + werden.

Die Einstellung default_manager = swiss + bewirkt:

  • Beim Erstellen einer neuen Datenbank in der kivitendo + Administration werden automatisch die Standard-Werte für die + Schweiz voreingestellt: Währung CHF, 5er-Rundung, Schweizer + KMU-Kontenplan, Sollversteuerung, Aufwandsmethode, Bilanzierung + (die Werte können aber manuell angepasst werden).

  • Einstellen der Standardkonten für Rundungserträge und + -aufwendungen (unter Mandantenkonfiguration → Standardkonten + veränderbar)

  • das verwendete Zahlenformat wird auf + 1'000.00 eingestellt (unter Programm → + Benutzereinstellungen veränderbar)

  • DATEV-Automatik und UStVA werden nicht angezeigt, + Erfolgsrechnung ersetzt GUV ( unter Mandantenkonfiguration → + Features veränderbar)

Nutzt man wiederkehrende Rechnungen, kann man unter + [periodic_invoices] den Login eines Benutzers + angeben, der nach Erstellung der Rechnungen eine entsprechende E-Mail + mit Informationen über die erstellten Rechnungen bekommt.

kivitendo bringt eine eigene Komponente zur zeitgesteuerten + Ausführung bestimmter Aufgaben mit, den Task-Server. Er wird u.a. für + Features wie die wiederkehrenden Rechnungen + benötigt, erledigt aber auch andere erforderliche Aufgaben und muss + daher in Betrieb genommen werden. Seine Einrichtung wird im Abschnitt + Task-Server genauer + beschrieben.

Für Entwickler finden sich unter [debug] + wichtige Funktionen, um die Fehlersuche zu erleichtern.

2.5.3. Versionen vor 2.6.3

In älteren kivitendo Versionen gab es im Verzeichnis + config die Dateien + authentication.pl und + lx-erp.conf, die jeweils Perl-Dateien waren. Es + gab auch die Möglichkeit, eine lokale Version der Konfigurationsdatei + zu erstellen (lx-erp-local.conf). Dies ist ab + 2.6.3 nicht mehr möglich, aber auch nicht mehr nötig.

Beim Update von einer kivitendo-Version vor 2.6.3 auf 2.6.3 oder + jünger müssen die Einstellungen aus den alten Konfigurationsdateien + manuell übertragen und die alten Konfigurationsdateien anschließend + gelöscht oder verschoben werden. Ansonsten zeigt kivitendo eine + entsprechende Fehlermeldung an.

\ No newline at end of file