X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=inline;f=doc%2Fhtml%2Fch02s06.html;h=bf355e738f53ad6ff618d8b55e11104ea606b070;hb=80cda5e67647bb46cacd3cbbfe5237b3de693b45;hp=bbe62bc4306a7ca22e1e202bcf04474d92d8cbfc;hpb=1c103b3a9a96a045a221760af82bc99093b3076c;p=kivitendo-erp.git diff --git a/doc/html/ch02s06.html b/doc/html/ch02s06.html index bbe62bc43..bf355e738 100644 --- a/doc/html/ch02s06.html +++ b/doc/html/ch02s06.html @@ -1,63 +1,119 @@
- -Der Task-Server ist ein Prozess, der im Hintergrund läuft, in - regelmäßigen Abständen nach abzuarbeitenden Aufgaben sucht und diese zu - festgelegten Zeitpunkten abarbeitet (ähnlich wie Cron). Dieser Prozess - wird bisher nur für die Erzeugung der wiederkehrenden Rechnungen - benutzt, wird aber in Zukunft deutlich mehr Aufgaben übertragen - bekommen.
Die Konfiguration erfolgt über den Abschnitt
- [task_server]
in der Datei
- config/lx_office.conf
. Die dort verfügbaren
- Optionen sind:
login
- gültiger Lx-Office-Benutzername, der benutzt wird, um die - zu verwendende Datenbankverbindung auszulesen. Der Benutzer muss - in der Administration angelegt werden. Diese Option muss - angegeben werden.
run_as
- Wird der Server vom Systembenutzer root
- gestartet, so wechselt er auf den mit run_as
- angegebenen Systembenutzer. Der Systembenutzer muss dieselben
- Lese- und Schreibrechte haben, wie auch der Webserverbenutzer
- (siehe see Manuelle Installation des Programmpaketes). Daher
- ist es sinnvoll, hier denselben Systembenutzer einzutragen,
- unter dem auch der Webserver läuft.
debug
- Schaltet Debug-Informationen an und aus.
Der Task-Server verhält sich von seinen Optionen her wie ein - reguläres SystemV-kompatibles Boot-Script. Außerdem wechselt er beim - Starten automatisch in das Lx-Office-Installationsverzeichnis.
Deshalb ist es möglich, ihn durch Setzen eines symbolischen - Links aus einem der Runlevel-Verzeichnisse heraus in den Boot-Prozess - einzubinden. Da das bei neueren Linux-Distributionen aber nicht - zwangsläufig funktioniert, werden auch Start-Scripte mitgeliefert, die - anstelle eines symbolischen Links verwendet werden können.
Kopieren Sie die Datei
- scripts/boot/system-v/lx-office-task-server
- nach /etc/init.d/lx-office-task-server
. Passen
- Sie in der kopierten Datei den Pfad zum Task-Server an (Zeile
- DAEMON=....
). Binden Sie das Script in den
- Boot-Prozess ein. Dies ist distributionsabhängig:
Debian-basierende Systeme:
update-rc.d lx-office-task-server defaults -# Nur bei Debian Squeeze und neuer: -insserv lx-office-task-server
OpenSuSE und Fedora Core:
chkconfig --add lx-office-task-server
Danach kann der Task-Server mit dem folgenden Befehl gestartet - werden: /etc/init.d/lx-office-task-server - start -
Kopieren Sie die Datei
- scripts/boot/upstart/lx-office-task-server.conf
- nach /etc/init/lx-office-task-server.conf
.
- Passen Sie in der kopierten Datei den Pfad zum Task-Server an (Zeile
- exec ....
).
Danach kann der Task-Server mit dem folgenden Befehl gestartet - werden: service lx-office-task-server - start -
Der Task-Server wird wie folgt kontrolliert:
./scripts/task_server.pl Befehl
- Befehl
ist dabei eine der folgenden
- Optionen:
- start
startet eine neue Instanz des
- Task-Servers. Die Prozess-ID wird innerhalb des
- users
-Verzeichnisses abgelegt.
- stop
beendet einen laufenden
- Task-Server.
- restart
beendet und startet ihn
- neu.
- status
berichtet, ob der Task-Server
- läuft.
Der Task-Server wechselt beim Starten automatisch in das - Lx-Office-Installationsverzeichnis.
Dieselben Optionen können auch für die SystemV-basierenden - Runlevel-Scripte benutzt werden (siehe oben).
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:
AliasMatch ^/kivitendo-erp/[^/]+\.pl /var/www/kivitendo-erp/dispatcher.pl +Alias /kivitendo-erp/ /var/www/kivitendo-erp/ + +<Directory /var/www/kivitendo-erp> + AddHandler cgi-script .pl + Options ExecCGI Includes FollowSymlinks +</Directory> + +<Directory /var/www/kivitendo-erp/users> + Require all granted +</Directory>
Ersetzen Sie dabei die Pfade durch diejenigen, in die Sie vorher + das kivitendo-Archiv entpacket haben.
Anmerkung | |
---|---|
Vor den einzelnen Optionen muss bei einigen Distributionen ein
+ Plus â Bei einigen Distribution (Ubuntu ab 14.04, Debian ab 8.2) muss + noch explizit das cgi-Modul mittels a2enmod cgi + aktiviert 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
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. ] +
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.
Folgende Kombinationen sind getestet:
Apache 2.4.7 (Ubuntu 14.04.2 LTS) und mod_fcgid.
Apache 2.4.18 (Ubuntu 16.04 LTS) und mod_fcgid
Apache 2.4.29 (Ubuntu 18.04 LTS) und mod_fcgid
Als Perl Backend wird das Modul FCGI.pm
+ verwendet.
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 Ihrer + 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 |
Bevor Sie versuchen, eine kivitendo Installation unter FCGI + laufen zu lassen, empfiehlt 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 + Require all granted +</Directory> + +<DirectoryMatch /path/to/kivitendo-erp/users> +Require all denied +</DirectoryMatch>
Warnung | |
---|---|
Wer einen älteren Apache als Version 2.4 im Einsatz hat, + muss entsprechend die Syntax der Directorydirektiven verändert. + Statt Require all granted muà man Folgendes einstellen: + Order Allow,Deny + Allow from All und statt Require all denied muss stehen: + Order Deny,Allow + Deny from All |
Seit mod_fcgid-Version 2.3.6 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 + Require all granted +</Directory> + +<DirectoryMatch /path/to/kivitendo-erp/users> +Require all denied +</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.
+ Kivitendo unterstützt, dass Benutzerauthentifizierung über den Webserver mittels des »Basic«-HTTP-Authentifizierungs-Schema erfolgt
+ (siehe RFC 7617). Dazu ist es aber nötig, dass der dabei vom Client
+ mitgeschickte Header Authorization
vom Webserver an Kivitendo über die Umgebungsvariable
+ HTTP_AUTHORIZATION
weitergegeben wird, was standardmäÃig nicht der Fall ist. Für Apache kann dies über die
+ folgende Konfigurationsoption aktiviert werden:
+
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
Für einen deutlichen Sicherheitsmehrwert sorgt die Ausführung + von kivitendo nur über https-verschlüsselten Verbindungen, sowie + weiteren Zusatzmassnahmen, wie beispielsweise Basic Authenticate. Die + Konfigurationsmöglichkeiten sprengen allerdings den Rahmen dieser + Anleitung, hier ein Hinweis auf einen entsprechenden Foreneintrag + (Stand Sept. 2015) und einen aktuellen (Stand Mai 2017) + SSL-Konfigurations-Generator.