X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=doc%2Fdokumentation.xml;h=d3560dc1fec57a71d54897df1350b15f4594fefc;hb=ea4256d880b35648ed0cf5725e43cddf2b8b7b4f;hp=9db1c5300d5ff496be69ffe02ee3b08704658bd2;hpb=684a3ad31409ad955d64cb3d6e3b6d4236ab68bf;p=kivitendo-erp.git diff --git a/doc/dokumentation.xml b/doc/dokumentation.xml index 9db1c5300..d3560dc1f 100644 --- a/doc/dokumentation.xml +++ b/doc/dokumentation.xml @@ -2,7 +2,7 @@ - kivitendo 3.5.1: Installation, Konfiguration, + <title>kivitendo 3.5.3: Installation, Konfiguration, Entwicklung @@ -106,7 +106,7 @@ ohne große Probleme auf den derzeit aktuellen verbreiteten Distributionen läuft. - Anfang 2016 sind das folgende Systeme, von denen bekannt ist, + Anfang 2019 sind das folgende Systeme, von denen bekannt ist, dass kivitendo auf ihnen läuft: @@ -115,27 +115,26 @@ - 7.0 "Wheezy" + 8.0 "Jessie" - - 8.0 "Jessie" + 9.0 "Stretch" + - Ubuntu 12.04 LTS "Precise Pangolin", 14.04 "Trusty Tahr" - LTS, 15.10 "Wily Werewolf" und 16.04 "Xenial Xerus" LTS - Alpha + 16.04 "Xenial Xerus" LTS und 18.04 "Bionic Beaver" LTS + - openSUSE LEAP 42.1 + openSUSE 15.0 - Fedora 22 + Fedora 29 @@ -159,17 +158,13 @@ - parent (nur bei Perl vor 5.10.1) + Algorithm::CheckDigits Archive::Zip - - Algorithm::CheckDigits - - CGI @@ -182,14 +177,26 @@ Config::Std + + Daemon::Generic + + DateTime + + DateTime::Event::Cron + + DateTime::Format::Strptime + + DateTime::Set + + DBI @@ -206,6 +213,10 @@ Email::MIME + + Exception::Class + + FCGI (nicht Versionen 0.68 bis 0.71 inklusive; siehe File::Copy::Recursive + + File::Flock + + File::MimeInfo + + File::Slurp + + GD @@ -280,6 +299,10 @@ PDF::API2 + + Regexp::IPv6 + + Rose::Object @@ -293,6 +316,14 @@ neuer + + Set::Infinite + + + + Set::Crontab + + String::ShellQuote @@ -326,10 +357,17 @@ - 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 + Seit Version größer v3.5.0 sind die folgenden Pakete hinzugekommen: Text::Unidecode, LWP::Authen::Digest, @@ -375,7 +413,7 @@ Debian und Ubuntu Für Debian und Ubuntu stehen die meisten der benötigten - Perl-Pakete als Debian-Pakete zur Verfügung. Sie können mit + Pakete als Debian-Pakete zur Verfügung. Sie können mit folgendem Befehl installiert werden: apt install apache2 libarchive-zip-perl libclone-perl \ @@ -385,15 +423,19 @@ libparams-validate-perl libpdf-api2-perl librose-db-object-perl \ librose-db-perl librose-object-perl libsort-naturally-perl \ libstring-shellquote-perl libtemplate-perl libtext-csv-xs-perl \ - libtext-iconv-perl liburi-perl libxml-writer-perl libyaml-perl \ + libtext-iconv-perl liburi-perl libxml-writer-perl libyaml-libyaml-perl \ libimage-info-perl libgd-gd2-perl libapache2-mod-fcgid \ libfile-copy-recursive-perl postgresql libalgorithm-checkdigits-perl \ - libcrypt-pbkdf2-perl git libcgi-pm-perl libtext-unidecode-perl libwww-perl + libcrypt-pbkdf2-perl git libcgi-pm-perl libtext-unidecode-perl libwww-perl\ + 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 \ + libset-crontab-perl libdatetime-event-perl libexception-class-perl - - Für das Paket HTML::Restrict gibt es kein Debian-Paket, dies - muß per CPAN installiert werden. Unter Ubuntu funktioniert das - mit: + Ab Ubuntu Version 18.04 LTS, bzw. Debian Buster sind alle benötigten Pakete in der Distribution verfügbar. + 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 @@ -406,19 +448,17 @@ cpan HTML::Restrict RPM-Pakete zur Verfügung. Sie können mit folgendem Befehl installiert werden: - dnf install httpd mod_fcgid perl-Archive-Zip perl-Clone perl-DBD-Pg \ - perl-DBI perl-DateTime perl-Email-Address perl-Email-MIME perl-FCGI \ - perl-File-Copy-Recursive perl-JSON perl-List-MoreUtils perl-Net-SMTP-SSL perl-Net-SSLGlue \ - perl-PDF-API2 perl-Params-Validate perl-Rose-DB perl-Rose-DB-Object \ + dnf install httpd mod_fcgid postgresql-server postgresql-contrib\ + perl-Algorithm-CheckDigits perl-Archive-Zip perl-CPAN perl-Class-XSAccessor \ + perl-Clone perl-Config-Std perl-DBD-Pg perl-DBI perl-Daemon-Generic \ + perl-DateTime perl-DateTime-Set perl-Email-Address perl-Email-MIME perl-FCGI \ + perl-File-Copy-Recursive perl-File-Flock perl-File-MimeInfo perl-File-Slurp \ + perl-GD perl-HTML-Restrict perl-JSON perl-List-MoreUtils perl-List-UtilsBy \ + perl-Net-SMTP-SSL perl-Net-SSLGlue perl-PBKDF2-Tiny perl-PDF-API2 \ + perl-Params-Validate perl-Regexp-IPv6 perl-Rose-DB perl-Rose-DB-Object \ perl-Rose-Object perl-Sort-Naturally perl-String-ShellQuote \ - perl-Template-Toolkit perl-Text-CSV_XS perl-Text-Iconv perl-URI \ - perl-XML-Writer perl-YAML perl-parent postgresql-server perl-CPAN \ - perl-Algorithm-CheckDigits perl-GD perl-Class-XSAccessor perl-Text-Balanced perl-libwww-perl - - Zusätzlich müssen einige Pakete aus dem CPAN installiert - werden. Dazu können Sie die folgenden Befehle nutzen: - - cpan Config::Std HTML::Restrict + perl-Template-Toolkit perl-Text-CSV_XS perl-Text-Iconv perl-URI perl-XML-Writer \ + perl-YAML perl-libwww-perl @@ -428,18 +468,24 @@ cpan HTML::Restrict RPM-Pakete zur Verfügung. Sie können mit folgendem Befehl installiert werden: - zypper install apache2 apache2-mod_fcgid perl-Archive-Zip perl-Clone \ - perl-Config-Std perl-DBD-Pg perl-DBI perl-DateTime perl-Email-Address \ - perl-Email-MIME perl-FastCGI perl-File-Copy-Recursive perl-JSON perl-List-MoreUtils \ - perl-Net-SMTP-SSL perl-Net-SSLGlue perl-PDF-API2 perl-Params-Validate \ - perl-Sort-Naturally perl-Template-Toolkit perl-Text-CSV_XS perl-Text-Iconv \ - perl-URI perl-XML-Writer perl-YAML perl-CPAN \ - perl-Algorithm-CheckDigits perl-GD perl-Class-XSAccessor postgresql-server perl-libwwww-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 + Zusätzlich müssen einige Pakete aus dem CPAN installiert werden. Dazu können Sie die folgenden Befehle nutzen: - cpan Rose::Db::Object + cpan DateTime::event::Cron DateTime::Set FCGI \ + HTML::Restrict PBKDF2::Tiny Rose::Db::Object Set::Infinite @@ -478,15 +524,15 @@ cpan HTML::Restrict url="https://github.com/kivitendo/kivitendo-erp/releases">hier heruntergeladen werden. - Die kivitendo ERP Installationsdatei - (kivitendo-erp-3.4.1.tgz) wird im + Diese aktuelleste kivitendo ERP-Archiv + (kivitendo-erp-*.tgz) wird dann im Dokumentenverzeichnis des Webservers (z.B. /var/www/html/, /srv/www/htdocs oder /var/www/) entpackt: cd /var/www -tar xvzf kivitendo-erp-3.4.1.tgz +tar xvzf kivitendo-erp-*.tgz Wechseln Sie in das entpackte Verzeichnis: @@ -775,7 +821,19 @@ default_manager = german Anpassung der PostgreSQL-Konfiguration PostgreSQL muss auf verschiedene Weisen angepasst werden. - + Dies variert je nach eingesetzter Distribution, da distributionsabhängig unterschiedliche Strategien beim Upgrade der Postgres Version eingesetzt werden. + Als Hinweis einige Links zu den drei Distribution (Stand Dezember 2018): + + + Fedora (Postgres-Installation unter Fedora) + + + Ubuntu (Infos für Postgres für die aktuelle LTS Version) + + + OpenSuSE (aktuell nur bis Version OpenSuSE 13 verifiziert) + + Zeichensätze/die Verwendung von Unicode/UTF-8 @@ -1001,22 +1059,16 @@ Alias /kivitendo-erp/ /var/www/kivitendo-erp/ - Apache 2.2.11 (Ubuntu) und mod_fcgid. + Apache 2.4.7 (Ubuntu 14.04.2 LTS) und mod_fcgid. - - Apache 2.2.11 / 2.2.22 (Ubuntu) und mod_fastcgi. + Apache 2.4.18 (Ubuntu 16.04 LTS) und mod_fcgid - - Apache 2.4.7 (Ubuntu 14.04.2 LTS) und mod_fcgid. + Apache 2.4.29 (Ubuntu 18.04 LTS) und mod_fcgid - 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. @@ -1144,6 +1196,20 @@ Alias /url/for/kivitendo-erp-fcgid/ /path/to/kivitendo-erp/ + + Authentifizierung mittels HTTP Basic Authentication + + + 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 + + Weitergehende Konfiguration @@ -1916,8 +1982,8 @@ systemctl enable kivitendo-task-server.service einfachsten ist dazu eine texlive Installation. Unter debianoiden Betriebssystemen installiert man die Pakete mit: - apt-get install texlive-base-bin texlive-latex-recommended texlive-fonts-recommended \ - texlive-latex-extra texlive-lang-german texlive-generic-extra + apt install texlive-base-bin texlive-latex-recommended texlive-fonts-recommended \ + texlive-latex-extra texlive-lang-german texlive-generic-extra texlive-xetex Für Fedora benötigen Sie die folgenden Pakete: @@ -7763,6 +7829,89 @@ file_name = /tmp/kivitendo-debug.log + + Programmatische API-Aufrufe + + + Einführung + + + Es ist möglich, Funktionen in kivitendo programmatisch aus anderen Programmen aufzurufen. Dazu ist nötig, dass + Authentifizierungsinformationen in jedem Aufruf mitgegeben werden. Dafür gibt es zwei Methoden: die HTTP-»Basic«-Authentifizierung + oder die Übergabe als spziell benannte GET-Parameter. Neben den Authentifizierungsinformationen muss auch der zu verwendende Mandant + übergeben werden. + + + + + Wahl des Mandanten + + + Der zu verwendende Mandant kann als Parameter {AUTH}client_id mit jedem Request mitgeschickt werden. Der Wert + muss dabei die Datenbank-ID des Mandanten sein. kivitendo prüft, ob der Account, der über die Authentifizierungsinformationen + übergeben wurde, Zugriff auf den angegebenen Mandanten hat. + + + + Wird in einem Request kein Mandant mitgegeben, so wird derjenige Mandant genommen, wer als Standardmandant markiert wurde. Gibt es + keinen solchen, kommt es zu einer Fehlermeldung. + + + + + HTTP-»Basic«-Authentifizierung + + + Für diese Methode muss jedem Request der bekannte HTTP-Header Authorization mitgeschickt werden (siehe RFC 7617). Unterstützt wird ausschließlich die »Basic«-Methode. Loginname und + Passwort werden bei dieser Methode durch einen Doppelpunkt getrennt und Base64-encodiert im genannten HTTP-Header übertragen. + + + + Diese Informationen müssen einen vorhandenen Account benennen. kivitendo prüft genau wie bei Benutzung über den Webbrowser, ob + dieser Account Zugriff auf den Mandanten sowie auf die angeforderte Funktion hat. + + + + Da die Logininformationen im Klartext im Request stehen, sollte der Zugriff auf kivitendo ausschließlich über HTTPS verschlüsselt + erfolgen. + + + + + Authentifizierung mit Parametern + + + Für diese Methode müssen jedem Request zwei Parameter mitgegeben werden: {AUTH}login und + {AUTH}password. Diese Informationen müssen einen vorhandenen Account benennen. kivitendo prüft genau wie bei + Benutzung über den Webbrowser, ob dieser Account Zugriff auf den Mandanten sowie auf die angeforderte Funktion hat. + + + + Da die Logininformationen im Klartext im Request stehen, sollte der Zugriff auf kivitendo ausschließlich über HTTPS verschlüsselt + erfolgen. + + + + + Die Verwendung dieser Methode ist veraltet. Statt dessen sollte die oben erwähnte HTTP-»Basic«-Authentifizierung verwendet werden. + + + + + + Beispiele + + + Das folgende Beispiel nutzt das Kommandozeilenprogramm »curl« und ruft die Funktion auf, die eine vorhandene Telefonnummer in den + Ansprechpersonen sucht und dazu Informationen zurückliefert. Dabei wird die HTTP-»Basic«-Authentifizierung genutzt. + + + $ curl --silent --user 'jdoe:SecretPassword!' \ + 'https://…/controller.pl?action=PhoneNumber/look_up&number=053147110815' + + + SQL-Upgradedateien