X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=doc%2Fdokumentation.xml;h=934eff834b2f3f05669a67564a94c217ae087496;hb=e6795d92afc3786c7f2cea73cff6da8986194987;hp=b9b7e11f890f5286c64c9fdd556f91d2ec2c62fb;hpb=822f5cf7db806f963758849e1e944340a9233a0d;p=kivitendo-erp.git diff --git a/doc/dokumentation.xml b/doc/dokumentation.xml index b9b7e11f8..934eff834 100644 --- a/doc/dokumentation.xml +++ b/doc/dokumentation.xml @@ -2,7 +2,7 @@ - kivitendo 3.5.3: Installation, Konfiguration, + <title>kivitendo 3.5.4: Installation, Konfiguration, Entwicklung @@ -120,7 +120,9 @@ 9.0 "Stretch" - + + 10.0 "Buster" + @@ -213,6 +215,10 @@ Email::MIME + + Exception::Class + + FCGI (nicht Versionen 0.68 bis 0.71 inklusive; siehe Set::Infinite - - Set::Crontab - - String::ShellQuote @@ -353,16 +355,16 @@ - YAML + YAML::XS oder YAML + Seit Version größer v3.5.3 sind die folgenden Pakete hinzugekommen: Exception::Class + Seit Version größer v3.5.1 sind die folgenden Pakete hinzugekommen: Set::Infinite, List::UtilsBy, DateTime::Set, DateTime::Event::Cron - Daemon::Generic DateTime::Event::Cron File::Flock - File::Slurp Set::Crontab Exception::Lite. Für die letzten beiden Module - liefert kivitendo fallback-Module aus, da diese überhaupt nicht in debian oder in der benötigten Version zu Verfügung stehen (Stand - Anfang 2019). + Daemon::Generic, DateTime::Event::Cron, File::Flock, + File::Slurp Seit Version größer v3.5.0 sind die folgenden Pakete hinzugekommen: Text::Unidecode, @@ -407,7 +409,6 @@ Debian und Ubuntu - Für Debian und Ubuntu stehen die meisten der benötigten Pakete als Debian-Pakete zur Verfügung. Sie können mit folgendem Befehl installiert werden: @@ -426,15 +427,20 @@ postgresql-contrib aqbanking-tools poppler-utils libhtml-restrict-perl\ libdatetime-set-perl libset-infinite-perl liblist-utilsby-perl\ libdaemon-generic-perl libfile-flock-perl libfile-slurp-perl\ - libfile-mimeinfo-perl libpbkdf2-tiny-perl libregexp-ipv6-perl - + libfile-mimeinfo-perl libpbkdf2-tiny-perl libregexp-ipv6-perl \ + libdatetime-event-cron-perl libexception-class-perl - Ab Ubuntu Version 18.04 LTS, bzw. Debian Buster sind alle benötigten Pakete in der Distribution verfügbar. +Sollten Pakete nicht zu Verfügung stehen, so können diese auch mittels CPAN installiert werden. Ferner muss für Ubuntu das Repository "Universe" aktiv sein (s.a. Anmerkungen). + + Die Perl Pakete für Ubuntu befinden sich im "Universe" Repository. Falls dies nicht aktiv ist, kann dies mit folgendem Aufruf aktiviert werden: +add-apt-repository universe + + Für ältere Ubuntu/Debians müßen einige Pakete per CPAN installiert werden. Das geht bspw. für das benötige Paket HTML::Restrict mit: - apt-get install build-essential cpan HTML::Restrict + @@ -460,21 +466,79 @@ cpan HTML::Restrict openSUSE - Für openSUSE stehen die meisten der benötigten Perl-Pakete als - RPM-Pakete zur Verfügung. Sie können mit folgendem Befehl - installiert werden: + Für openSUSE stehen die meisten der benötigten Perl-Pakete als RPM-Pakete zur Verfügung. + Dies setzt voraus, das eben die erforderlichen Repositories dem System bekannt gemacht worden sind. + Um zusätzliche Repositories für die Installation zur Verfügung zu stellen, kann man diese mit YaST oder auch in einem Terminal auf der Konsole bekannt geben. Wir beschränken uns hier mit der Eingabe auf der Konsole. Da wahrscheinlich für die Administration eine SSH-Verbindung zum Server benutzt wird. + Dazu geben wir folgenden Befehl ein: + zypper addrepo -f \ + http://download.opensuse.org/repositories/devel:languages:perl/openSUSE_Leap_15.0/ \ + "devel:languages:perl" + + zypper addrepo -f \ + https://download.opensuse.org/repositories/devel:languages:haskell:lts:13/\ + openSUSE_Leap_15.0/ "devel:languages:haskell:lts:13" + + zypper addrepo -f \ + https://download.opensuse.org/repositories/devel:languages:haskell:lts:13/\ + openSUSE_Leap_15.0/ "devel:languages:haskell:lts:13" + + Danach geben wir noch die beiden folgenden Befehle ein: + zypper clean + zypper refresh + Sollte zypper eine Meldung ausgeben, ob der Repositorie Key abgelehnt, nicht vertraut oder für immer akzeptiert werden soll, ist die Beantwortung durch drücken der "i" Taste am besten geeignet. Wer noch mehr über zypper erfahren möchte, kann sich einmal die zypper Hilfe anschauen. + zypper --help + + Offiziell wird von openSUSE nur noch Versionen ab 15.0 unterstützt. Die SuSE Macher haben ab Version 15.0 einen größen Umbau in der Verwaltung der Pakete vorgenommen, das heißt, der Paketumfang ist der SLES 15 als kleinsten Nenner angepasst. Dies gilt besonders der openSUE Distribution. Es gibt ja einmal die openSUSE Distri und die Professionelle SLES Version. Dadurch sind viele Pakete aus dem Repositorie enfernt worden, aber auch viele auf aktuellen Stand gehalten. + + Das überprüfen wir mit YaST. Sollte openSUSE bis zur Version 15.0 zum Einsatz kommen und der Administrator bei der Installation der Distribution die KDE Oberfläche aktiviert hat, loggen wir uns am Server direkt ein, starten das Verwaltungsprogram in einer Konsole wie folgt: + yast2 return. + Oder über die Menüführung wie folgt: Ein Klick auf das runde Icon, ganz links unten in der Menüleiste dann die Maus Verfahren auf System und YaST. + Sie können mit folgendem Befehl installiert werden: + zypper install Paketname + Es wird empfohlen zusätzliche Pakete nicht direkt mit CPAN zu installieren, da man diese auch über andere Repositories beziehen kann, die bei openSUSE zur Verfügung stehen. Dadurch hat man den Vorteil, dass die Pakete mit YaST verwaltet werden, also wieder deinstalliert oder durch neuere ersetzt werden können. Zudem kann man auch noch eventuelle Bugs an openSUSE senden und diese dem Maintainer melden. + + zypper install perl-threads-shared ghc-pdfinfo apache2-mod_fcgid \ + yast2-http-server postgresql-server postgresql-contrib perl-Algorithm-CheckDigits \ + perl-Archive-Zip perl-CGI perl-CGI-Ajax perl-Clone \ + perl-Config-Std perl-Class-XSAccessor perl-Daemon-Generic perl-DateTime \ + perl-DateTime-Event-Cron perl-DateTime-Format-Strptime perl-DateTime-Set \ + perl-DBI perl-DBD-Pg perl-Devel-REPL perl-FastCGI perl-Email-Address \ + perl-Email-MIME perl-Email-MIME-ContentType perl-Email-MIME-Encodings \ + perl-FCGI perl-File-Copy-Recursive perl-File-Flock perl-File-MimeInfo \ + perl-File-Slurp perl-GD perl-HTML-Restrict perl-Image-Info \ + perl-JSON perl-List-MoreUtils perl-List-UtilsBy perl-Log-Log4perl perl-Net-LDAP-Server \ + perl-Net-SSLGlue perl-Net-SMTP-SSL perl-PBKDF2-Tiny perl-PDF-API2 \ + perl-Params-Validate perl-Regexp-IPv6 perl-Rose-DB perl-Rose-Object \ + perl-Rose-DB-Object perl-MooseX-Role-Cmd perl-Set-Crontab perl-Set-Infinite \ + perl-Sort-Naturally perl-String-ShellQuote perl-Sys-CPU perl-Template-Toolkit \ + perl-Text-CSV_XS perl-Test-Deep perl-Test-Output perl-Text-Iconv \ + perl-Text-Unidecode perl-URI perl-URI-Find perl-XML-Writer \ + perl-YAML perl-libwww-perl + - zypper install apache2 apache2-mod_fcgid postgresql-server postgresql-contrib\ - perl-Algorithm-CheckDigits perl-Archive-Zip perl-CGI perl-Class-XSAccessor \ - perl-Clone perl-Config-Std perl-DBD-Pg perl-DBI perl-Daemon-Generic \ - perl-DateTime perl-DateTime-Format-Strptime perl-Email-Address \ - perl-Email-MIME perl-FastCGI perl-File-Copy-Recursive perl-File-Flock \ - perl-File-MimeInfo perl-File-Slurp perl-GD perl-Image-Info perl-JSON \ - perl-List-MoreUtils perl-List-UtilsBy perl-Net-SMTP-SSL perl-Net-SSLGlue \ - perl-PDF-API2 perl-Params-Validate perl-Regexp-IPv6 perl-Set-Crontab \ - perl-Sort-Naturally perl-String-ShellQuote perl-Template-Toolkit \ - perl-Text-CSV_XS perl-Text-Iconv perl-Text-Unidecode perl-URI \ - perl-XML-Writer perl-YAML perl-libwww-perl + Für die Entwickler installiert man noch die folgenden Pakete: + + zypper install ghc-mtl-devel ghc-old-locale-devel \ + ghc-process-extras-devel ghc-rpm-macros ghc-text-devel ghc-time-devel \ + ghc-Cabal-devel ghc-time-locale-compat-devel perl-Log-Log4perl ghc-pdfinfo \ + ghc-pdfinfo-devel perl-Devel-REPL perl-URI-Find perl-Class-Utils \ + perl-Error-Pure perl-File-Object perl-Readonly perl-Test-Warnings \ + perl-Test-NoWarnings perl-Test-Deep perl-Test-Output perl-Test-Strict \ + perl-Test-LongString perl-File-Find-Rule + + + Zusätzlich müssen einige Pakete für den Umgang mit Latex installiert werden. Die Latex Module barcodes sind nützliche Helfer um auch Barcodes im Dokument zu plazieren, der Vollständigkeit halber hier für die Installation mit angegeben. + Dazu können Sie die folgenden Befehle nutzen: + + zypper install texlive-wallpaper texlive-colortbl \ + texlive-scrlttr2copy texlive-eurosym \ + texlive-geometry texlive-german texlive-graphbox texlive-hyperref \ + texlive-xifthen texlive-luainputenc texlive-lastpage texlive-ltabptch \ + texlive-nomentbl texlive-threeparttablex texlive-substr texlive-tabulary \ + texlive-ulem texlive-wallpaper texlive-xcolor texlive-xstring \ + texlive-xypic texlive-mwe texlive-mweights texlive-barcodes \ + texlive-GS1 texlive-ean texlive-makebarcode texlive-pst-barcode \ + texlive-upca Zusätzlich müssen einige Pakete aus dem CPAN installiert @@ -488,26 +552,20 @@ cpan HTML::Restrict Andere Pakete installieren - Seit Version v3.4.0 wird für den Bankimport optional das Paket - 'aqbanking-tools' benötigt. - - Debian und Ubuntu: apt install aqbanking-tools - - - Fedora: dnf install aqbanking - - openSUSE: zypper install aqbanking-tools - - Seit Version v3.4.1 wird generell zum Feststellen der - Seitenanzahl von PDF_Dokumenten 'pdfinfo' benötigt was im Paket - 'poppler-utils' enthalten ist. - - Debian und Ubuntu: apt install poppler-utils - - - Fedora: dnf install poppler-utils - - openSUSE: zypper install poppler-tools + + + aqbanking-tools Für das Parsen des MT940 Bankformats + + + poppler-utils 'pdfinfo' zum Erkennen der Seitenanzahl bei der PDF-Generierung + + + Postgres Trigram-Index Für datenbankoptimierte Suchanfragen. Bspw. im Paket postgresql-contrib enthalten + + + Debian und Ubuntu: apt install aqbanking-tools postgresql-contrib poppler-utils + Fedora: dnf install aqbanking poppler-utils postgresql-contrib + openSUSE: zypper install aqbanking-tools poppler-tools @@ -520,7 +578,7 @@ cpan HTML::Restrict url="https://github.com/kivitendo/kivitendo-erp/releases">hier heruntergeladen werden. - Diese aktuelleste kivitendo ERP-Archiv + Das aktuelleste kivitendo ERP-Archiv (kivitendo-erp-*.tgz) wird dann im Dokumentenverzeichnis des Webservers (z.B. /var/www/html/, @@ -782,7 +840,7 @@ default_manager = german kivitendo bringt eine eigene Komponente zur zeitgesteuerten Ausführung bestimmter Aufgaben mit, den Taskserver. Er wird u.a. für + linkend="config.task-server">Task-Server. Er wird u.a. für Features wie die wiederkehrenden Rechnungen benötigt, erledigt aber auch andere erforderliche Aufgaben und muss @@ -1160,13 +1218,11 @@ FcgidMaxRequestLen 10485760 <Directory /path/to/kivitendo-erp> AllowOverride All Options ExecCGI Includes FollowSymlinks - Order Allow,Deny - Allow from All + Require all granted </Directory> <DirectoryMatch /path/to/kivitendo-erp/users> - Order Deny,Allow - Deny from All +Require all denied </DirectoryMatch> Hierdurch wird nur ein zentraler Dispatcher gestartet. Alle @@ -1238,12 +1294,17 @@ Alias /url/for/kivitendo-erp-fcgid/ /path/to/kivitendo-erp/ - Da der Taskserver als Perlscript läuft, wird Arbeitsspeicher, der + Da der Task-Server als Perlscript läuft, wird Arbeitsspeicher, der einmal benötigt wurde, nicht mehr an das Betriebssystem zurückgegeben, - solange der Taskserver läuft. Dies kann dazu führen, dass ein länger - laufender Taskserver mit der Zeit immer mehr Arbeitsspeicher für sich - beansprucht. Es ist deshalb sinnvoll, dass der Taskserver in - regelmässigen Abständen neu gestartet wird. + solange der Task-Server läuft. Dies kann dazu führen, dass ein länger + laufender Task-Server mit der Zeit immer mehr Arbeitsspeicher für sich + beansprucht. Es ist deshalb sinnvoll, dass der Task-Server in + regelmässigen Abständen neu gestartet wird. Allerdings berücksichtigt der + Task-Server ein Memory-Limit, wenn dieses in der Konfigurationsdatei + angegeben ist. Bei Überschreiten dieses Limits beendet sich der + Task-Server. Sofern der Task-Server als systemd-Service mit dem + mitgelieferten Skript eingerichtet wurde, startet dieser danach + automatisch erneut. Verfügbare und notwendige Konfigurationsoptionen @@ -1377,6 +1438,15 @@ systemctl enable kivitendo-task-server.service Befehl tun: systemctl start kivitendo-task-server.service + + Ein so eingerichteter Task-Server startet nach Beendigung + automatisch erneut. Das betrifft eine Beendigung über die Oberfläche, + eine Beendingung über die Prozesskontrolle und eine Beendigung bei + Überschreiten des Memory-Limits. Soll der Task-Server nicht erneut + starten, so können Sie ihn mit folgendem Befehl stoppen: + + systemctl stop kivitendo-task-server.service + @@ -1418,6 +1488,10 @@ systemctl enable kivitendo-task-server.service Dieselben Optionen können auch für die SystemV-basierenden Runlevel-Scripte benutzt werden (siehe oben). + + Wurde der Task-Server als systemd-Service eingerichtet (s.o.), + so startet dieser nach Beendigung automatisch erneut. + @@ -1440,9 +1514,8 @@ systemctl enable kivitendo-task-server.service Datenbank, in der sowohl die Benutzerinformationen als auch die Daten abgelegt werden. - Zusätzlich ermöglicht es kivitendo, dass die Benutzerpasswörter - entweder gegen die Authentifizierungsdatenbank oder gegen einen - LDAP-Server überprüft werden. + Zusätzlich ermöglicht es kivitendo, dass die Benutzerpasswörter gegen die Authentifizierungsdatenbank oder gegen einen oder + mehrere LDAP-Server überprüft werden. Welche Art der Passwortüberprüfung kivitendo benutzt und wie kivitendo die Authentifizierungsdatenbank erreichen kann, wird in der @@ -1525,22 +1598,28 @@ systemctl enable kivitendo-task-server.service Passwortüberprüfung kivitendo unterstützt Passwortüberprüfung auf zwei Arten: gegen - die Authentifizierungsdatenbank und gegen einen externen LDAP- oder + die Authentifizierungsdatenbank und gegen externe LDAP- oder Active-Directory-Server. Welche davon benutzt wird, regelt der Parameter module im Abschnitt [authentication]. - Sollen die Benutzerpasswörter in der Authentifizierungsdatenbank - gespeichert werden, so muss der Parameter module - den Wert DB enthalten. In diesem Fall können sowohl - der Administrator als auch die Benutzer selber ihre Passwörter in - kivitendo ändern. + Dieser Parameter listet die zu verwendenden Authentifizierungsmodule auf. Es muss mindestens ein Modul angegeben werden, es + können aber auch mehrere angegeben werden. Weiterhin ist es möglich, das LDAP-Modul mehrfach zu verwenden und für jede Verwendung + eine unterschiedliche Konfiguration zu nutzen, z.B. um einen Fallback-Server anzugeben, der benutzt wird, sofern der Hauptserver + nicht erreichbar ist. + + Sollen die Benutzerpasswörter in der Authentifizierungsdatenbank geprüft werden, so muss der Parameter + module das Modul DB enthalten. Sofern das Modul in der Liste enthalten ist, egal an welcher + Position, können sowohl der Administrator als auch die Benutzer selber ihre Passwörter in kivitendo ändern. + + Wenn Passwörter gegen einen oder mehrere externe LDAP- oder Active-Directory-Server geprüft werden, so muss der Parameter + module den Wert LDAP enthalten. In diesem Fall müssen zusätzliche Informationen über den + LDAP-Server im Abschnitt [authentication/ldap] angegeben werden. Das Modul kann auch mehrfach angegeben werden, + wobei jedes Modul eine eigene Konfiguration bekommen sollte. Der Name der Konfiguration wird dabei mit einem Doppelpunkt getrennt an + den Modulnamen angehängt (LDAP:Name-der-Konfiguration). Der entsprechende Abschnitt in der Konfigurationsdatei + lautet dann [authentication/Name-der-Konfiguration]. - Soll hingegen ein externer LDAP- oder Active-Directory-Server - benutzt werden, so muss der Parameter module auf - LDAP gesetzt werden. In diesem Fall müssen - zusätzliche Informationen über den LDAP-Server im Abschnitt - [authentication/ldap] angegeben werden: + Die verfügbaren Parameter für die LDAP-Konfiguration lauten: @@ -1571,6 +1650,17 @@ systemctl enable kivitendo-task-server.service + + verify + + + Wenn Verbindungsverschlüsselung gewünscht und der Parameter tls gesetzt ist, so gibt dieser + Parameter an, ob das Serverzertifikat auf Gültigkeit geprüft wird. Mögliche Werte sind require (Zertifikat + wird überprüft und muss gültig sei; dies ist der Standard) und none (Zertifikat wird nicht + überpfüft). + + + attribute @@ -1620,6 +1710,14 @@ systemctl enable kivitendo-task-server.service also ‘Martin Mustermann’. + + + timeout + + + Timeout beim Verbindungsversuch, bevor der Server als nicht erreichbar gilt; Standardwert: 10 + + @@ -1979,7 +2077,7 @@ systemctl enable kivitendo-task-server.service debianoiden Betriebssystemen installiert man die Pakete mit: apt install texlive-base-bin texlive-latex-recommended texlive-fonts-recommended \ - texlive-latex-extra texlive-lang-german texlive-generic-extra texlive-xetex + texlive-latex-extra texlive-lang-german texlive-generic-extra texlive-xetex ghostscript Für Fedora benötigen Sie die folgenden Pakete: @@ -3731,7 +3829,7 @@ systemctl enable kivitendo-task-server.service Die zeitliche und periodische Überprüfung, ob eine wiederkehrende Rechnung automatisch erstellt werden soll, geschieht - durch den Taskserver, einen + durch den Task-Server, einen externen Dienst, der automatisch beim Start des Servers gestartet werden sollte. @@ -3741,7 +3839,7 @@ systemctl enable kivitendo-task-server.service Will man im laufenden Monat eine monatlich wiederkehrende Rechnung inkl. des laufenden Monats starten, stellt man das Startdatum - auf den Monatsanfang und wartet ein paar Minuten, bis der Taskserver + auf den Monatsanfang und wartet ein paar Minuten, bis der Task-Server den neu konfigurieren Auftrag erkennt und daraus eine Rechnung generiert hat. Alternativ setzt man das Startdatum auf den Monatsersten des Folgemonats und erstellt die erste Rechnung direkt