Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision cddb2fd7

Von Enrique Morales vor mehr als 1 Jahr hinzugefügt

  • ID cddb2fd70edda3ea92cc6667224f995d0ff61b68
  • Vorgänger ccc063b7
  • Nachfolger bfc04a83

Anleitung für installation mit Ansible hinzugefüegt

Unterschiede anzeigen:

doc/dokumentation.xml
566 566
        <para>openSUSE:<programlisting>Nicht notwendig, da poppler-utils bereits i.v.m. kivitendo-erp installiert wird</programlisting></para>
567 567
      </sect2>
568 568
    </sect1>
569

  
569
    <sect1 id="Installation mittels Ansible"
570
	   xreflabel="Inatallation mittels Ansible">
571
        <title>Installation mittels Ansible</title>
572
        <para> Zur Installation mit Ansible liegt auf dem Git Repository im ansible Ordner mit dem benötigtem Playbook und Konfigurationsdateien.</para>
573
        <para> Der/die Hosts auf denen Kivitendo installiert werden soll wird in einer Variable übergeben.</para>
574
        <para> Installiert werden kann das playbook mit folgendem Befehl:
575
        	<programlisting>ansible-playbook --ask-become-pass main.yaml --extra-vars &quot;target=ZIEL_RECHNER&quot;</programlisting>
576
        </para>
577
    </sect1>
570 578
    <sect1 id="Manuelle-Installation-des-Programmpaketes"
571 579
           xreflabel="Manuelle Installation des Programmpaketes">
572 580
      <title>Manuelle Installation des Programmpaketes</title>
......
1298 1306
        weiteren Zusatzmassnahmen, wie beispielsweise Basic Authenticate. Die
1299 1307
        Konfigurationsmöglichkeiten sprengen allerdings den Rahmen dieser
1300 1308
        Anleitung, hier ein Hinweis auf einen entsprechenden <ulink
1301
        url="https://www.kivitendo.de/boards/1/topics/142">Foreneintrag
1309
        url="http://redmine.kivitendo-premium.de/boards/1/topics/142">Foreneintrag
1302 1310
        (Stand Sept. 2015)</ulink> und einen aktuellen (Stand Mai 2017) <ulink
1303 1311
        url="https://mozilla.github.io/server-side-tls/ssl-config-generator/">
1304 1312
        SSL-Konfigurations-Generator</ulink>.</para>
......
2169 2177
      debianoiden Betriebssystemen installiert man die Pakete mit:</para>
2170 2178

  
2171 2179
      <para><programlisting>apt install texlive-base-bin texlive-latex-recommended texlive-fonts-recommended \
2172
  texlive-latex-extra texlive-lang-german ghostscript latexmk</programlisting></para>
2180
  texlive-latex-extra texlive-lang-german ghostscript</programlisting></para>
2173 2181

  
2174 2182
      <para>Für Fedora benötigen Sie die folgenden Pakete:</para>
2175 2183

  
doc/html/ch02.html
10 10
          diese. Auch die Liste der benötigten Perl-Module befindet sich
11 11
          hier.</p></li><li class="listitem"><p>
12 12
                  <span class="emphasis"><em>Installation von kivitendo</em></span>: Diese umfasst
13
          die "<a class="xref" href="ch02s03.html" title="2.3. Manuelle Installation des Programmpaketes">Manuelle Installation des Programmpaketes</a>"
14
          sowie grundlegende Einstellungen, die der "<a class="xref" href="ch02s04.html" title="2.4. kivitendo-Konfigurationsdatei">Abschnitt&nbsp;2.4, „kivitendo-Konfigurationsdatei“</a>" erläutert.</p></li><li class="listitem"><p>
13
          die "<a class="xref" href="ch02s04.html" title="2.4. Manuelle Installation des Programmpaketes">Manuelle Installation des Programmpaketes</a>"
14
          sowie grundlegende Einstellungen, die der "<a class="xref" href="ch02s05.html" title="2.5. kivitendo-Konfigurationsdatei">Abschnitt&nbsp;2.5, „kivitendo-Konfigurationsdatei“</a>" erläutert.</p></li><li class="listitem"><p>
15 15
                  <span class="emphasis"><em>Konfiguration externer Programme</em></span>: hierzu
16
          gehören die Datenbank ("<a class="xref" href="ch02s05.html" title="2.5. Anpassung der PostgreSQL-Konfiguration">Abschnitt&nbsp;2.5, „Anpassung der PostgreSQL-Konfiguration“</a>") und der
17
          Webserver ("<a class="xref" href="ch02s06.html" title="2.6. Webserver-Konfiguration">Abschnitt&nbsp;2.6, „Webserver-Konfiguration“</a>").</p></li><li class="listitem"><p>
16
          gehören die Datenbank ("<a class="xref" href="ch02s06.html" title="2.6. Anpassung der PostgreSQL-Konfiguration">Abschnitt&nbsp;2.6, „Anpassung der PostgreSQL-Konfiguration“</a>") und der
17
          Webserver ("<a class="xref" href="ch02s07.html" title="2.7. Webserver-Konfiguration">Abschnitt&nbsp;2.7, „Webserver-Konfiguration“</a>").</p></li><li class="listitem"><p>
18 18
                  <span class="emphasis"><em>Benutzerinformationen speichern können</em></span>:
19 19
          man benötigt mindestens eine Datenbank, in der Informationen zur
20 20
          Authentifizierung sowie die Nutzdaten gespeichert werden. Wie man
21
          das als Administrator macht, verrät "<a class="xref" href="ch02s08.html" title="2.8. Benutzerauthentifizierung und Administratorpasswort">Abschnitt&nbsp;2.8, „Benutzerauthentifizierung und Administratorpasswort“</a>".</p></li><li class="listitem"><p>
21
          das als Administrator macht, verrät "<a class="xref" href="ch02s09.html" title="2.9. Benutzerauthentifizierung und Administratorpasswort">Abschnitt&nbsp;2.9, „Benutzerauthentifizierung und Administratorpasswort“</a>".</p></li><li class="listitem"><p>
22 22
                  <span class="emphasis"><em>Benutzer, Gruppen und Datenbanken
23
          anlegen</em></span>: wie dies alles zusammenspielt erläutert "<a class="xref" href="ch02s09.html" title="2.9. Mandanten-, Benutzer- und Gruppenverwaltung">Abschnitt&nbsp;2.9, „Mandanten-, Benutzer- und Gruppenverwaltung“</a>".</p></li><li class="listitem"><p>
23
          anlegen</em></span>: wie dies alles zusammenspielt erläutert "<a class="xref" href="ch02s10.html" title="2.10. Mandanten-, Benutzer- und Gruppenverwaltung">Abschnitt&nbsp;2.10, „Mandanten-, Benutzer- und Gruppenverwaltung“</a>".</p></li><li class="listitem"><p>
24 24
                  <span class="emphasis"><em>Los geht's</em></span>: alles soweit erledigt? Dann
25
          kann es losgehen: "<a class="xref" href="ch02s21.html" title="2.21. kivitendo ERP verwenden">Abschnitt&nbsp;2.21, „kivitendo ERP verwenden“</a>"</p></li></ol></div><p>Alle weiteren Unterkapitel in diesem Kapitel sind ebenfalls
25
          kann es losgehen: "<a class="xref" href="ch02s22.html" title="2.22. kivitendo ERP verwenden">Abschnitt&nbsp;2.22, „kivitendo ERP verwenden“</a>"</p></li></ol></div><p>Alle weiteren Unterkapitel in diesem Kapitel sind ebenfalls
26 26
      wichtig und sollten vor einer ernsthaften Inbetriebnahme gelesen
27 27
      werden.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch01.html">Zurück</a>&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;<a accesskey="n" href="ch02s02.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">Kapitel 1. Aktuelle Hinweise&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.2. Benötigte Software und Pakete</td></tr></table></div></body></html>
doc/html/ch02s02.html
1 1
<html><head>
2 2
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
3
   <title>2.2. Benötigte Software und Pakete</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 3.8.0: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch02.html" title="Kapitel 2. Installation und Grundkonfiguration"><link rel="prev" href="ch02.html" title="Kapitel 2. Installation und Grundkonfiguration"><link rel="next" href="ch02s03.html" title="2.3. Manuelle Installation des Programmpaketes"></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.2. Benötigte Software und Pakete</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02.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="ch02s03.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="2.2. Benötigte Software und Pakete"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Ben%C3%B6tigte-Software-und-Pakete"></a>2.2. Benötigte Software und Pakete</h2></div></div></div><div class="sect2" title="2.2.1. Betriebssystem"><div class="titlepage"><div><div><h3 class="title"><a name="Betriebssystem"></a>2.2.1. Betriebssystem</h3></div></div></div><p>kivitendo ist für Linux konzipiert, und sollte auf jedem
3
   <title>2.2. Benötigte Software und Pakete</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 3.8.0: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch02.html" title="Kapitel 2. Installation und Grundkonfiguration"><link rel="prev" href="ch02.html" title="Kapitel 2. Installation und Grundkonfiguration"><link rel="next" href="ch02s03.html" title="2.3. Installation mittels Ansible"></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.2. Benötigte Software und Pakete</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02.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="ch02s03.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="2.2. Benötigte Software und Pakete"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Ben%C3%B6tigte-Software-und-Pakete"></a>2.2. Benötigte Software und Pakete</h2></div></div></div><div class="sect2" title="2.2.1. Betriebssystem"><div class="titlepage"><div><div><h3 class="title"><a name="Betriebssystem"></a>2.2.1. Betriebssystem</h3></div></div></div><p>kivitendo ist für Linux konzipiert, und sollte auf jedem
4 4
        unixoiden Betriebssystem zum Laufen zu kriegen sein. Getestet ist
5 5
        diese Version im speziellen auf Debian und Ubuntu, grundsätzlich wurde
6 6
        bei der Auswahl der Pakete aber darauf Rücksicht genommen, dass es
......
48 48
                     <code class="literal">Exception::Class</code>
49 49
                  </p></li><li class="listitem"><p>
50 50
                     <code class="literal">FCGI</code> (nicht Versionen 0.68 bis 0.71
51
            inklusive; siehe <a class="xref" href="ch02s06.html#Apache-Konfiguration.FCGI.WebserverUndPlugin" title="2.6.2.3. Getestete Kombinationen aus Webservern und Plugin">Abschnitt&nbsp;2.6.2.3, „Getestete Kombinationen aus Webservern und Plugin“</a>)</p></li><li class="listitem"><p>
51
            inklusive; siehe <a class="xref" href="ch02s07.html#Apache-Konfiguration.FCGI.WebserverUndPlugin" title="2.7.2.3. Getestete Kombinationen aus Webservern und Plugin">Abschnitt&nbsp;2.7.2.3, „Getestete Kombinationen aus Webservern und Plugin“</a>)</p></li><li class="listitem"><p>
52 52
                     <code class="literal">File::Copy::Recursive</code>
53 53
                  </p></li><li class="listitem"><p>
54 54
                     <code class="literal">File::Flock</code>
......
78 78
                     <code class="literal">List::UtilsBy</code>
79 79
                  </p></li><li class="listitem"><p>LWP::Authen::Digest</p></li><li class="listitem"><p>LWP::UserAgent</p></li><li class="listitem"><p>
80 80
                     <code class="literal">Net::SMTP::SSL</code> (optional, bei
81
            E-Mail-Versand über SSL; siehe Abschnitt "<a class="xref" href="ch02s11.html#config.sending-email.smtp" title="2.11.2. Versand über einen SMTP-Server">E-Mail-Versand über einen SMTP-Server</a>")</p></li><li class="listitem"><p>
81
            E-Mail-Versand über SSL; siehe Abschnitt "<a class="xref" href="ch02s12.html#config.sending-email.smtp" title="2.12.2. Versand über einen SMTP-Server">E-Mail-Versand über einen SMTP-Server</a>")</p></li><li class="listitem"><p>
82 82
                     <code class="literal">Net::SSLGlue</code> (optional, bei
83
            E-Mail-Versand über TLS; siehe Abschnitt "<a class="xref" href="ch02s11.html#config.sending-email.smtp" title="2.11.2. Versand über einen SMTP-Server">E-Mail-Versand über einen SMTP-Server</a>")</p></li><li class="listitem"><p>
83
            E-Mail-Versand über TLS; siehe Abschnitt "<a class="xref" href="ch02s12.html#config.sending-email.smtp" title="2.12.2. Versand über einen SMTP-Server">E-Mail-Versand über einen SMTP-Server</a>")</p></li><li class="listitem"><p>
84 84
                     <code class="literal">Math::Round</code>
85 85
                  </p></li><li class="listitem"><p>
86 86
                     <code class="literal">Params::Validate</code>
......
205 205
                     <code class="literal">Postgres Trigram-Index</code> Für datenbankoptimierte Suchanfragen. Bspw. im Paket <code class="literal">postgresql-contrib</code> enthalten</p></li></ul></div><p>Debian und Ubuntu: </p><pre class="programlisting">apt install postgresql-contrib poppler-utils</pre><p>
206 206
            </p><p>Fedora: </p><pre class="programlisting">dnf install poppler-utils postgresql-contrib</pre><p>
207 207
            </p><p>openSUSE:</p><pre class="programlisting">Nicht notwendig, da poppler-utils bereits i.v.m. kivitendo-erp installiert wird</pre><p>
208
            </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02.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="ch02s03.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">Kapitel 2. Installation und Grundkonfiguration&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.3. Manuelle Installation des Programmpaketes</td></tr></table></div></body></html>
208
            </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02.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="ch02s03.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">Kapitel 2. Installation und Grundkonfiguration&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.3. Installation mittels Ansible</td></tr></table></div></body></html>
doc/html/ch02s03.html
1 1
<html><head>
2 2
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
3
   <title>2.3. Manuelle Installation des Programmpaketes</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 3.8.0: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch02.html" title="Kapitel 2. Installation und Grundkonfiguration"><link rel="prev" href="ch02s02.html" title="2.2. Benötigte Software und Pakete"><link rel="next" href="ch02s04.html" title="2.4. kivitendo-Konfigurationsdatei"></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.3. Manuelle Installation des Programmpaketes</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s02.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="ch02s04.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="2.3. Manuelle Installation des Programmpaketes"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Manuelle-Installation-des-Programmpaketes"></a>2.3. Manuelle Installation des Programmpaketes</h2></div></div></div><p>Der aktuelle Stable-Release, bzw. beta Release wird bei github
4
      gehostet und kann <a class="ulink" href="https://github.com/kivitendo/kivitendo-erp/releases" target="_top">hier</a>
5
      heruntergeladen werden.</p><p>Das aktuelleste kivitendo ERP-Archiv
6
      (<code class="filename">kivitendo-erp-*.tgz</code>) wird dann im
7
      Dokumentenverzeichnis des Webservers (z.B.
8
      <code class="filename">/var/www/html/</code>,
9
      <code class="filename">/srv/www/htdocs</code> oder
10
      <code class="filename">/var/www/</code>) entpackt:</p><pre class="programlisting">cd /var/www
11
tar xvzf kivitendo-erp-*.tgz</pre><p>Wechseln Sie in das entpackte Verzeichnis:</p><pre class="programlisting">cd kivitendo-erp</pre><p>Alternativ können Sie auch einen Alias in der
12
      Webserverkonfiguration benutzen, um auf das tatsächliche
13
      Installationsverzeichnis zu verweisen.</p><p>Bei einer Neuinstallation von Version 3.1.0 oder später muß das
14
      WebDAV Verzeichnis derzeit manuell angelegt werden:</p><pre class="programlisting">mkdir webdav</pre><p>Die Verzeichnisse <code class="filename">users</code>,
15
      <code class="filename">spool</code> und <code class="filename">webdav</code> müssen für
16
      den Benutzer beschreibbar sein, unter dem der Webserver läuft. Die
17
      restlichen Dateien müssen für diesen Benutzer lesbar sein. Die Benutzer-
18
      und Gruppennamen sind bei verschiedenen Distributionen unterschiedlich
19
      (z.B. bei Debian/Ubuntu <code class="constant">www-data</code>, bei Fedora
20
      <code class="constant">apache</code> oder bei openSUSE
21
      <code class="constant">wwwrun</code>).</p><p>Der folgende Befehl ändert den Besitzer für die oben genannten
22
      Verzeichnisse auf einem Debian/Ubuntu-System:</p><pre class="programlisting">chown -R www-data users spool webdav</pre><p>Weiterhin muss der Webserver-Benutzer in den Verzeichnissen
23
      <code class="filename">templates</code> und <code class="filename">users</code>
24
      Unterverzeichnisse für jeden neuen Benutzer anlegen dürfen, der in
25
      kivitendo angelegt wird:</p><pre class="programlisting">chown www-data templates users</pre><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>Wir empfehlen eine Installation mittels des Versionsmanagager
26
        git. Hierfür muss ein git-Client installiert sein. Damit ist man sehr
27
        viel flexibler für zukünftige Upgrades. Installations-Anleitung (bitte
28
        die Pfade anpassen) bspw. wie folgt: </p><pre class="programlisting">cd /var/www/
29
git clone https://github.com/kivitendo/kivitendo-erp.git
30
cd kivitendo-erp/
31
git checkout `git tag -l | egrep -ve "(alpha|beta|rc)" | tail -1`</pre><p>
32
        Erläuterung: Der Befehl wechselt zur letzten Stable-Version (git tag
33
        -l listet alle Tags auf, das egrep schmeisst alle Einträge mit alpha,
34
        beta oder rc raus und das tail gibt davon den obersten Treffer
35
        zurück). Sehr sinnvoll ist es, direkt im Anschluss einen eigenen
36
        Branch zu erzeugen, um bspw. seine eigenen Druckvorlagen-Anpassungen
37
        damit zu verwalten. Hierfür reicht ein simples </p><pre class="programlisting">  git checkout -b meine_eigenen_änderungen</pre><p>
38
        nach dem letzten Kommando (weiterführende Informationen <a class="ulink" href="http://www-cs-students.stanford.edu/~blynn/gitmagic/index.html" target="_top">
39
        Git Magic</a>).</p><p>Ein beispielhafter Workflow für Druckvorlagen-Anpassungen von
40
        3.4.1 nach 3.5: </p><pre class="programlisting">
41
$ git clone https://github.com/kivitendo/kivitendo-erp.git
42
$ cd kivitendo-erp/
43
$ git checkout release-3.4.1                # das ist ein alter release aus dem wir starten ...
44
$ git checkout -b meine_eigene_änderungen   # unser lokaler branch - unabhängig von allen anderen
45
$ git add templates/mein_druck              # das sind unsere druckvorlagen inkl. produktbilder
46
$ git commit -m "juhu tolle änderungen"
47

  
48
[meine_aenderungen 1d89e41] juhu tolle ändernungen
49
 4 files changed, 380 insertions(+)
50
 create mode 100644 templates/mein_druck/img/webdav/tesla.png
51
 create mode 100644 templates/mein_druck/mahnung.tex
52
 create mode 100644 templates/mein_druck/zahlungserinnerung_zwei.tex
53
 create mode 100644 templates/mein_druck/zahlungserinnerung_zwei_invoice.tex
54

  
55
# 5 Jahre später ...
56
# webserver abschalten!
57

  
58
$ git checkout master
59
$ git pull                                  # oder git fetch und danach ein stable release tag auswählen (s.o.)
60
$ git checkout meine_eigenen_änderungen
61
$ git rebase master
62

  
63
Zunächst wird der Branch zurückgespult, um Ihre Änderungen
64
darauf neu anzuwenden ...
65
Wende an: juhu tolle änderungen
66
$ service apache2 restart                   # webserver starten!
67
</pre><p>
68
            </p></td></tr></table></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02s02.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="ch02s04.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">2.2. Benötigte Software und Pakete&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.4. kivitendo-Konfigurationsdatei</td></tr></table></div></body></html>
3
   <title>2.3. Installation mittels Ansible</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 3.8.0: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch02.html" title="Kapitel 2. Installation und Grundkonfiguration"><link rel="prev" href="ch02s02.html" title="2.2. Benötigte Software und Pakete"><link rel="next" href="ch02s04.html" title="2.4. Manuelle Installation des Programmpaketes"></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.3. Installation mittels Ansible</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s02.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="ch02s04.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="2.3. Installation mittels Ansible"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Installation mittels Ansible"></a>2.3. Installation mittels Ansible</h2></div></div></div><p> Zur Installation mit Ansible liegt auf dem Git Repository im ansible Ordner mit dem benötigtem Playbook und Konfigurationsdateien.</p><p> Der/die Hosts auf denen Kivitendo installiert werden soll wird in einer Variable übergeben.</p><p> Installiert werden kann das playbook mit folgendem Befehl:
4
        	</p><pre class="programlisting">ansible-playbook --ask-become-pass main.yaml --extra-vars "target=ZIEL_RECHNER"</pre><p>
5
        
6
         </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02s02.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="ch02s04.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">2.2. Benötigte Software und Pakete&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.4. Manuelle Installation des Programmpaketes</td></tr></table></div></body></html>
doc/html/ch02s04.html
1 1
<html><head>
2 2
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
3
   <title>2.4. kivitendo-Konfigurationsdatei</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 3.8.0: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch02.html" title="Kapitel 2. Installation und Grundkonfiguration"><link rel="prev" href="ch02s03.html" title="2.3. Manuelle Installation des Programmpaketes"><link rel="next" href="ch02s05.html" title="2.5. Anpassung der PostgreSQL-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.4. kivitendo-Konfigurationsdatei</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s03.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="ch02s05.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="2.4. kivitendo-Konfigurationsdatei"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="config.config-file"></a>2.4. kivitendo-Konfigurationsdatei</h2></div></div></div><div class="sect2" title="2.4.1. Einführung"><div class="titlepage"><div><div><h3 class="title"><a name="config.config-file.introduction"></a>2.4.1. Einführung</h3></div></div></div><p>In kivitendo gibt es nur noch eine Konfigurationsdatei, die
4
        benötigt wird: <code class="filename">config/kivitendo.conf</code> (kurz: "die
5
        Hauptkonfigurationsdatei"). Diese muss bei der Erstinstallation von
6
        kivitendo bzw. der Migration von älteren Versionen angelegt
7
        werden.</p><p>Als Vorlage dient die Datei
8
        <code class="filename">config/kivitendo.conf.default</code> (kurz: "die
9
        Default-Datei"):</p><pre class="programlisting">$ cp config/kivitendo.conf.default config/kivitendo.conf</pre><p>Die Default-Datei wird immer zuerst eingelesen. Werte, die in
10
        der Hauptkonfigurationsdatei stehen, überschreiben die Werte aus der
11
        Default-Datei. Die Hauptkonfigurationsdatei muss also nur die
12
        Abschnitte und Werte enthalten, die von denen der Default-Datei
13
        abweichen.</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 der Umbenennung in kivitendo hieß diese Datei noch
14
          <code class="filename">config/lx_office.conf</code>. Aus Gründen der
15
          Kompatibilität wird diese Datei eingelesen, sofern die Datei
16
          <code class="filename">config/kivitendo.conf</code> nicht existiert.</p></td></tr></table></div><p>Diese Hauptkonfigurationsdatei ist dann eine
17
        installationsspezifische Datei, d.h. sie enthält bspw. lokale
18
        Passwörter und wird auch nicht im Versionsmanagement (git)
19
        verwaltet.</p><p>Die Konfiguration ist ferner serverabhängig, d.h. für alle
20
        Mandaten, bzw. Datenbanken gleich.</p></div><div class="sect2" title="2.4.2. Abschnitte und Parameter"><div class="titlepage"><div><div><h3 class="title"><a name="config.config-file.sections-parameters"></a>2.4.2. Abschnitte und Parameter</h3></div></div></div><p>Die Konfigurationsdatei besteht aus mehreren Teilen, die
21
        entsprechend kommentiert sind:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
22
                     <code class="literal">authentication</code> (siehe Abschnitt "<a class="xref" href="ch02s08.html" title="2.8. Benutzerauthentifizierung und Administratorpasswort">Abschnitt&nbsp;2.8, „Benutzerauthentifizierung und Administratorpasswort“</a>"
23
            in diesem Kapitel)</p></li><li class="listitem"><p>
24
                     <code class="literal">authentication/database</code>
25
                  </p></li><li class="listitem"><p>
26
                     <code class="literal">authentication/ldap</code>
27
                  </p></li><li class="listitem"><p>
28
                     <code class="literal">system</code>
29
                  </p></li><li class="listitem"><p>
30
                     <code class="literal">paths</code>
31
                  </p></li><li class="listitem"><p>
32
                     <code class="literal">mail_delivery</code> (siehe Abschnitt "<a class="xref" href="ch02s11.html#config.sending-email.smtp" title="2.11.2. Versand über einen SMTP-Server">E-Mail-Versand über einen SMTP-Server</a>)</p></li><li class="listitem"><p>
33
                     <code class="literal">applications</code>
34
                  </p></li><li class="listitem"><p>
35
                     <code class="literal">environment</code>
36
                  </p></li><li class="listitem"><p>
37
                     <code class="literal">print_templates</code>
38
                  </p></li><li class="listitem"><p>
39
                     <code class="literal">task_server</code>
40
                  </p></li><li class="listitem"><p>
41
                     <code class="literal">periodic_invoices</code>
42
                  </p></li><li class="listitem"><p>
43
                     <code class="literal">self_tests</code>
44
                  </p></li><li class="listitem"><p>
45
                     <code class="literal">console</code>
46
                  </p></li><li class="listitem"><p>
47
                     <code class="literal">testing</code>
48
                  </p></li><li class="listitem"><p>
49
                     <code class="literal">testing/database</code>
50
                  </p></li><li class="listitem"><p>
51
                     <code class="literal">debug</code>
52
                  </p></li></ul></div><p>Die üblicherweise wichtigsten Parameter, die am Anfang
53
        einzustellen oder zu kontrollieren sind, sind:</p><pre class="programlisting">[authentication]
54
admin_password = geheim
3
   <title>2.4. Manuelle Installation des Programmpaketes</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 3.8.0: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch02.html" title="Kapitel 2. Installation und Grundkonfiguration"><link rel="prev" href="ch02s03.html" title="2.3. Installation mittels Ansible"><link rel="next" href="ch02s05.html" title="2.5. kivitendo-Konfigurationsdatei"></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.4. Manuelle Installation des Programmpaketes</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s03.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="ch02s05.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="2.4. Manuelle Installation des Programmpaketes"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Manuelle-Installation-des-Programmpaketes"></a>2.4. Manuelle Installation des Programmpaketes</h2></div></div></div><p>Der aktuelle Stable-Release, bzw. beta Release wird bei github
4
      gehostet und kann <a class="ulink" href="https://github.com/kivitendo/kivitendo-erp/releases" target="_top">hier</a>
5
      heruntergeladen werden.</p><p>Das aktuelleste kivitendo ERP-Archiv
6
      (<code class="filename">kivitendo-erp-*.tgz</code>) wird dann im
7
      Dokumentenverzeichnis des Webservers (z.B.
8
      <code class="filename">/var/www/html/</code>,
9
      <code class="filename">/srv/www/htdocs</code> oder
10
      <code class="filename">/var/www/</code>) entpackt:</p><pre class="programlisting">cd /var/www
11
tar xvzf kivitendo-erp-*.tgz</pre><p>Wechseln Sie in das entpackte Verzeichnis:</p><pre class="programlisting">cd kivitendo-erp</pre><p>Alternativ können Sie auch einen Alias in der
12
      Webserverkonfiguration benutzen, um auf das tatsächliche
13
      Installationsverzeichnis zu verweisen.</p><p>Bei einer Neuinstallation von Version 3.1.0 oder später muß das
14
      WebDAV Verzeichnis derzeit manuell angelegt werden:</p><pre class="programlisting">mkdir webdav</pre><p>Die Verzeichnisse <code class="filename">users</code>,
15
      <code class="filename">spool</code> und <code class="filename">webdav</code> müssen für
16
      den Benutzer beschreibbar sein, unter dem der Webserver läuft. Die
17
      restlichen Dateien müssen für diesen Benutzer lesbar sein. Die Benutzer-
18
      und Gruppennamen sind bei verschiedenen Distributionen unterschiedlich
19
      (z.B. bei Debian/Ubuntu <code class="constant">www-data</code>, bei Fedora
20
      <code class="constant">apache</code> oder bei openSUSE
21
      <code class="constant">wwwrun</code>).</p><p>Der folgende Befehl ändert den Besitzer für die oben genannten
22
      Verzeichnisse auf einem Debian/Ubuntu-System:</p><pre class="programlisting">chown -R www-data users spool webdav</pre><p>Weiterhin muss der Webserver-Benutzer in den Verzeichnissen
23
      <code class="filename">templates</code> und <code class="filename">users</code>
24
      Unterverzeichnisse für jeden neuen Benutzer anlegen dürfen, der in
25
      kivitendo angelegt wird:</p><pre class="programlisting">chown www-data templates users</pre><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>Wir empfehlen eine Installation mittels des Versionsmanagager
26
        git. Hierfür muss ein git-Client installiert sein. Damit ist man sehr
27
        viel flexibler für zukünftige Upgrades. Installations-Anleitung (bitte
28
        die Pfade anpassen) bspw. wie folgt: </p><pre class="programlisting">cd /var/www/
29
git clone https://github.com/kivitendo/kivitendo-erp.git
30
cd kivitendo-erp/
31
git checkout `git tag -l | egrep -ve "(alpha|beta|rc)" | tail -1`</pre><p>
32
        Erläuterung: Der Befehl wechselt zur letzten Stable-Version (git tag
33
        -l listet alle Tags auf, das egrep schmeisst alle Einträge mit alpha,
34
        beta oder rc raus und das tail gibt davon den obersten Treffer
35
        zurück). Sehr sinnvoll ist es, direkt im Anschluss einen eigenen
36
        Branch zu erzeugen, um bspw. seine eigenen Druckvorlagen-Anpassungen
37
        damit zu verwalten. Hierfür reicht ein simples </p><pre class="programlisting">  git checkout -b meine_eigenen_änderungen</pre><p>
38
        nach dem letzten Kommando (weiterführende Informationen <a class="ulink" href="http://www-cs-students.stanford.edu/~blynn/gitmagic/index.html" target="_top">
39
        Git Magic</a>).</p><p>Ein beispielhafter Workflow für Druckvorlagen-Anpassungen von
40
        3.4.1 nach 3.5: </p><pre class="programlisting">
41
$ git clone https://github.com/kivitendo/kivitendo-erp.git
42
$ cd kivitendo-erp/
43
$ git checkout release-3.4.1                # das ist ein alter release aus dem wir starten ...
44
$ git checkout -b meine_eigene_änderungen   # unser lokaler branch - unabhängig von allen anderen
45
$ git add templates/mein_druck              # das sind unsere druckvorlagen inkl. produktbilder
46
$ git commit -m "juhu tolle änderungen"
55 47

  
56
[authentication/database]
57
host     = localhost
58
port     = 5432
59
db       = kivitendo_auth
60
user     = postgres
61
password =
48
[meine_aenderungen 1d89e41] juhu tolle ändernungen
49
 4 files changed, 380 insertions(+)
50
 create mode 100644 templates/mein_druck/img/webdav/tesla.png
51
 create mode 100644 templates/mein_druck/mahnung.tex
52
 create mode 100644 templates/mein_druck/zahlungserinnerung_zwei.tex
53
 create mode 100644 templates/mein_druck/zahlungserinnerung_zwei_invoice.tex
62 54

  
63
[system]
64
default_manager = german</pre><p>Für kivitendo Installationen in der Schweiz sollte hier
65
        <code class="varname">german</code> durch <code class="varname">swiss</code> ersetzt
66
        werden.</p><p>Die Einstellung <code class="varname">default_manager = swiss</code>
67
        bewirkt:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Beim Erstellen einer neuen Datenbank in der kivitendo
68
            Administration werden automatisch die Standard-Werte für die
69
            Schweiz voreingestellt: Währung CHF, 5er-Rundung, Schweizer
70
            KMU-Kontenplan, Sollversteuerung, Aufwandsmethode, Bilanzierung
71
            (die Werte können aber manuell angepasst werden).</p></li><li class="listitem"><p>Einstellen der Standardkonten für Rundungserträge und
72
            -aufwendungen (unter Mandantenkonfiguration → Standardkonten
73
            veränderbar)</p></li><li class="listitem"><p>das verwendete Zahlenformat wird auf
74
            <code class="varname">1'000.00</code> eingestellt (unter Programm →
75
            Benutzereinstellungen veränderbar)</p></li><li class="listitem"><p>DATEV-Automatik und UStVA werden nicht angezeigt,
76
            Erfolgsrechnung ersetzt GUV ( unter Mandantenkonfiguration →
77
            Features veränderbar)</p></li></ul></div><p>Nutzt man wiederkehrende Rechnungen, kann man unter
78
        <code class="varname">[periodic_invoices]</code> den Login eines Benutzers
79
        angeben, der nach Erstellung der Rechnungen eine entsprechende E-Mail
80
        mit Informationen über die erstellten Rechnungen bekommt.</p><p>kivitendo bringt eine eigene Komponente zur zeitgesteuerten
81
        Ausführung bestimmter Aufgaben mit, den <a class="link" href="ch02s07.html" title="2.7. Der Task-Server">Task-Server</a>. Er wird u.a. für
82
        Features wie die <a class="link" href="ch03.html#features.periodic-invoices" title="3.1. Wiederkehrende Rechnungen">wiederkehrenden Rechnungen</a>
83
        benötigt, erledigt aber auch andere erforderliche Aufgaben und muss
84
        daher in Betrieb genommen werden. Seine Einrichtung wird im Abschnitt
85
        <a class="link" href="ch02s07.html" title="2.7. Der Task-Server">Task-Server</a> genauer
86
        beschrieben.</p><p>Für Entwickler finden sich unter <code class="varname">[debug]</code>
87
        wichtige Funktionen, um die Fehlersuche zu erleichtern.</p></div><div class="sect2" title="2.4.3. Versionen vor 2.6.3"><div class="titlepage"><div><div><h3 class="title"><a name="config.config-file.prior-versions"></a>2.4.3. Versionen vor 2.6.3</h3></div></div></div><p>In älteren kivitendo Versionen gab es im Verzeichnis
88
        <code class="filename">config</code> die Dateien
89
        <code class="filename">authentication.pl</code> und
90
        <code class="filename">lx-erp.conf</code>, die jeweils Perl-Dateien waren. Es
91
        gab auch die Möglichkeit, eine lokale Version der Konfigurationsdatei
92
        zu erstellen (<code class="filename">lx-erp-local.conf</code>). Dies ist ab
93
        2.6.3 nicht mehr möglich, aber auch nicht mehr nötig.</p><p>Beim Update von einer kivitendo-Version vor 2.6.3 auf 2.6.3 oder
94
        jünger müssen die Einstellungen aus den alten Konfigurationsdateien
95
        manuell übertragen und die alten Konfigurationsdateien anschließend
96
        gelöscht oder verschoben werden. Ansonsten zeigt kivitendo eine
97
        entsprechende Fehlermeldung an.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02s03.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="ch02s05.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">2.3. Manuelle Installation des Programmpaketes&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.5. Anpassung der PostgreSQL-Konfiguration</td></tr></table></div></body></html>
55
# 5 Jahre später ...
56
# webserver abschalten!
57

  
58
$ git checkout master
59
$ git pull                                  # oder git fetch und danach ein stable release tag auswählen (s.o.)
60
$ git checkout meine_eigenen_änderungen
61
$ git rebase master
62

  
63
Zunächst wird der Branch zurückgespult, um Ihre Änderungen
64
darauf neu anzuwenden ...
65
Wende an: juhu tolle änderungen
66
$ service apache2 restart                   # webserver starten!
67
</pre><p>
68
            </p></td></tr></table></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02s03.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="ch02s05.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">2.3. Installation mittels Ansible&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.5. kivitendo-Konfigurationsdatei</td></tr></table></div></body></html>
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. 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 3.8.0: 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><p>Dies variert je nach eingesetzter Distribution, da distributionsabhängig unterschiedliche Strategien beim Upgrade der Postgres Version eingesetzt werden.
4
            Als Hinweis einige Links zu den drei Distribution (Stand Dezember 2018):</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
5
                  <a class="ulink" href="https://fedoraproject.org/wiki/PostgreSQL" target="_top">Fedora (Postgres-Installation unter Fedora)</a>
6
               </p></li><li class="listitem"><p>
7
                  <a class="ulink" href="https://help.ubuntu.com/lts/serverguide/postgresql.html" target="_top">Ubuntu (Infos für Postgres für die aktuelle LTS Version)</a>
8
               </p></li><li class="listitem"><p>
9
                  <a class="ulink" href="https://de.opensuse.org/PostgreSQL" target="_top">OpenSuSE (aktuell nur bis Version OpenSuSE 13 verifiziert)</a>
10
               </p></li></ul></div><div class="sect2" title="2.5.1. Zeichensätze/die Verwendung von Unicode/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 Unicode/UTF-8</h3></div></div></div><p>kivitendo setzt zwingend voraus, dass die Datenbank
11
        Unicode/UTF-8 als Encoding einsetzt. Bei aktuellen
12
        Serverinstallationen braucht man hier meist nicht einzugreifen.</p><p>Das Encoding des Datenbankservers kann überprüft werden. Ist das
13
        Encoding der Datenbank "template1" "Unicode" bzw. "UTF-8", so braucht
14
        man nichts weiteres diesbezüglich unternehmen. Zum Testen:</p><pre class="programlisting">su postgres
15
echo '\l' | psql
16
exit </pre><p>Andernfalls ist es notwendig, einen neuen Datenbankcluster mit
17
        Unicode-Encoding anzulegen und diesen zu verwenden. Unter Debian und
18
        Ubuntu kann dies z.B. für PostgreSQL 9.3 mit dem folgenden Befehl
19
        getan werden:</p><pre class="programlisting">pg_createcluster --locale=de_DE.UTF-8 --encoding=UTF-8 9.3 clustername</pre><p>Die Datenbankversionsnummer muss an die tatsächlich verwendete
20
        Versionsnummer angepasst werden.</p><p>Unter anderen Distributionen gibt es ähnliche Methoden.</p><p>Das Encoding einer Datenbank kann in <span class="command"><strong>psql</strong></span> mit
21
        <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
22
        Distribution in verschiedenen Verzeichnissen liegen kann (z.B.
23
        <code class="filename">/var/lib/pgsql/data/</code> oder
24
        <code class="filename">/etc/postgresql/</code>), muss sichergestellt werden,
25
        dass TCP/IP-Verbindungen aktiviert sind. Das Verhalten wird über den
26
        Parameter <code class="varname">listen_address</code> gesteuert. Laufen
27
        PostgreSQL und kivitendo auf demselben Rechner, so kann dort der Wert
28
        <code class="literal">localhost</code> verwendet werden. Andernfalls müssen
29
        Datenbankverbindungen auch von anderen Rechnern aus zugelassen werden,
30
        was mit dem Wert <code class="literal">*</code> geschieht.</p><p>In der Datei <code class="filename">pg_hba.conf</code>, die im gleichen
31
        Verzeichnis wie die <code class="filename">postgresql.conf</code> zu finden
32
        sein sollte, müssen die Berechtigungen für den Zugriff geändert
33
        werden. Hier gibt es mehrere Möglichkeiten. Sinnvoll ist es nur die
34
        nötigen Verbindungen immer zuzulassen, für eine lokal laufende
35
        Datenbank zum Beispiel:</p><pre class="programlisting">local all kivitendo password
36
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
37
        Unterstützung für servergespeicherte Prozeduren eingerichet werden.
38
        Melden Sie sich dafür als Benutzer “postgres” an der Datenbank an:
39
        </p><pre class="programlisting">su - postgres
40
psql template1</pre><p> führen Sie die folgenden Kommandos aus:</p><pre class="programlisting">CREATE EXTENSION IF NOT EXISTS plpgsql;
41
\q</pre><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>
42
                  <code class="literal">CREATE EXTENSION</code> ist seit Version 9.1 die
43
          bevorzugte Syntax um die Sprache <code class="literal">plpgsql</code>
44
          anzulegen. In diesen Versionen ist die Extension meist auch schon
45
          vorhanden. Sollten Sie eine ältere Version von Postgres haben,
46
          benutzen Sie stattdessen den folgenden Befehl.</p><pre class="programlisting">CREATE LANGUAGE 'plpgsql';
47
\q</pre></td></tr></table></div></div><div class="sect2" title="2.5.4. Erweiterung für Trigram Prozeduren"><div class="titlepage"><div><div><h3 class="title"><a name="Erweiterung-f%C3%BCr-trigram"></a>2.5.4. Erweiterung für Trigram Prozeduren</h3></div></div></div><p>Ab Version 3.5.1 wird die Trigram-Index-Erweiterung benötigt.
48
        Diese wird mit dem SQL-Updatescript
49
        sql/Pg-upgrade2/trigram_extension.sql und Datenbank-Super-Benutzer
50
        Rechten automatisch installiert. Dazu braucht der
51
        DatenbankSuperbenutzer "postgres" ein Passwort.</p><pre class="programlisting">su - postgres
52
psql
53
\password postgres
3
   <title>2.5. kivitendo-Konfigurationsdatei</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 3.8.0: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch02.html" title="Kapitel 2. Installation und Grundkonfiguration"><link rel="prev" href="ch02s04.html" title="2.4. Manuelle Installation des Programmpaketes"><link rel="next" href="ch02s06.html" title="2.6. Anpassung der PostgreSQL-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. kivitendo-Konfigurationsdatei</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. kivitendo-Konfigurationsdatei"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="config.config-file"></a>2.5. kivitendo-Konfigurationsdatei</h2></div></div></div><div class="sect2" title="2.5.1. Einführung"><div class="titlepage"><div><div><h3 class="title"><a name="config.config-file.introduction"></a>2.5.1. Einführung</h3></div></div></div><p>In kivitendo gibt es nur noch eine Konfigurationsdatei, die
4
        benötigt wird: <code class="filename">config/kivitendo.conf</code> (kurz: "die
5
        Hauptkonfigurationsdatei"). Diese muss bei der Erstinstallation von
6
        kivitendo bzw. der Migration von älteren Versionen angelegt
7
        werden.</p><p>Als Vorlage dient die Datei
8
        <code class="filename">config/kivitendo.conf.default</code> (kurz: "die
9
        Default-Datei"):</p><pre class="programlisting">$ cp config/kivitendo.conf.default config/kivitendo.conf</pre><p>Die Default-Datei wird immer zuerst eingelesen. Werte, die in
10
        der Hauptkonfigurationsdatei stehen, überschreiben die Werte aus der
11
        Default-Datei. Die Hauptkonfigurationsdatei muss also nur die
12
        Abschnitte und Werte enthalten, die von denen der Default-Datei
13
        abweichen.</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 der Umbenennung in kivitendo hieß diese Datei noch
14
          <code class="filename">config/lx_office.conf</code>. Aus Gründen der
15
          Kompatibilität wird diese Datei eingelesen, sofern die Datei
16
          <code class="filename">config/kivitendo.conf</code> nicht existiert.</p></td></tr></table></div><p>Diese Hauptkonfigurationsdatei ist dann eine
17
        installationsspezifische Datei, d.h. sie enthält bspw. lokale
18
        Passwörter und wird auch nicht im Versionsmanagement (git)
19
        verwaltet.</p><p>Die Konfiguration ist ferner serverabhängig, d.h. für alle
20
        Mandaten, bzw. Datenbanken gleich.</p></div><div class="sect2" title="2.5.2. Abschnitte und Parameter"><div class="titlepage"><div><div><h3 class="title"><a name="config.config-file.sections-parameters"></a>2.5.2. Abschnitte und Parameter</h3></div></div></div><p>Die Konfigurationsdatei besteht aus mehreren Teilen, die
21
        entsprechend kommentiert sind:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
22
                     <code class="literal">authentication</code> (siehe Abschnitt "<a class="xref" href="ch02s09.html" title="2.9. Benutzerauthentifizierung und Administratorpasswort">Abschnitt&nbsp;2.9, „Benutzerauthentifizierung und Administratorpasswort“</a>"
23
            in diesem Kapitel)</p></li><li class="listitem"><p>
24
                     <code class="literal">authentication/database</code>
25
                  </p></li><li class="listitem"><p>
26
                     <code class="literal">authentication/ldap</code>
27
                  </p></li><li class="listitem"><p>
28
                     <code class="literal">system</code>
29
                  </p></li><li class="listitem"><p>
30
                     <code class="literal">paths</code>
31
                  </p></li><li class="listitem"><p>
32
                     <code class="literal">mail_delivery</code> (siehe Abschnitt "<a class="xref" href="ch02s12.html#config.sending-email.smtp" title="2.12.2. Versand über einen SMTP-Server">E-Mail-Versand über einen SMTP-Server</a>)</p></li><li class="listitem"><p>
33
                     <code class="literal">applications</code>
34
                  </p></li><li class="listitem"><p>
35
                     <code class="literal">environment</code>
36
                  </p></li><li class="listitem"><p>
37
                     <code class="literal">print_templates</code>
38
                  </p></li><li class="listitem"><p>
39
                     <code class="literal">task_server</code>
40
                  </p></li><li class="listitem"><p>
41
                     <code class="literal">periodic_invoices</code>
42
                  </p></li><li class="listitem"><p>
43
                     <code class="literal">self_tests</code>
44
                  </p></li><li class="listitem"><p>
45
                     <code class="literal">console</code>
46
                  </p></li><li class="listitem"><p>
47
                     <code class="literal">testing</code>
48
                  </p></li><li class="listitem"><p>
49
                     <code class="literal">testing/database</code>
50
                  </p></li><li class="listitem"><p>
51
                     <code class="literal">debug</code>
52
                  </p></li></ul></div><p>Die üblicherweise wichtigsten Parameter, die am Anfang
53
        einzustellen oder zu kontrollieren sind, sind:</p><pre class="programlisting">[authentication]
54
admin_password = geheim
54 55

  
55
Eingabe Passwort
56
\q</pre><p>Benutzername Postgres und Passwort können jetzt beim Anlegen
57
        einer Datenbank bzw. bei Updatescripten, die SuperuserRechte
58
        benötigen, eingegeben werden.</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>
59
                  <code class="literal">pg_trgm</code> ist je nach Distribution nicht im
60
          Standard-Paket von Postgres enthalten. Ein </p><pre class="programlisting">select * from pg_available_extensions where name ='pg_trgm';</pre><p>
61
          in template1 sollte entsprechend erfolgreich sein. Andernfalls muss
62
          das Paket nachinstalliert werden, bspw. bei debian/ubuntu
63
          </p><pre class="programlisting">apt install postgresql-contrib</pre><p>
64
               </p></td></tr></table></div></div><div class="sect2" title="2.5.5. Datenbankbenutzer anlegen"><div class="titlepage"><div><div><h3 class="title"><a name="Datenbankbenutzer-anlegen"></a>2.5.5. Datenbankbenutzer anlegen</h3></div></div></div><p>Wenn Sie nicht den Datenbanksuperuser “postgres” zum Zugriff
65
        benutzen wollen, so sollten Sie bei PostgreSQL einen neuen Benutzer
66
        anlegen. Ein Beispiel, wie Sie einen neuen Benutzer anlegen
67
        können:</p><p>Die Frage, ob der neue User Superuser sein soll, können Sie mit
68
        nein beantworten, genauso ist die Berechtigung neue User (Roles) zu
69
        generieren nicht nötig.</p><pre class="programlisting">su - postgres
70
createuser -d -P kivitendo
71
exit</pre><p>Wenn Sie später einen Datenbankzugriff konfigurieren, verändern
72
        Sie den evtl. voreingestellten Benutzer “postgres” auf “kivitendo”
73
        bzw. 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>
56
[authentication/database]
57
host     = localhost
58
port     = 5432
59
db       = kivitendo_auth
60
user     = postgres
61
password =
62

  
63
[system]
64
default_manager = german</pre><p>Für kivitendo Installationen in der Schweiz sollte hier
65
        <code class="varname">german</code> durch <code class="varname">swiss</code> ersetzt
66
        werden.</p><p>Die Einstellung <code class="varname">default_manager = swiss</code>
67
        bewirkt:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Beim Erstellen einer neuen Datenbank in der kivitendo
68
            Administration werden automatisch die Standard-Werte für die
69
            Schweiz voreingestellt: Währung CHF, 5er-Rundung, Schweizer
70
            KMU-Kontenplan, Sollversteuerung, Aufwandsmethode, Bilanzierung
71
            (die Werte können aber manuell angepasst werden).</p></li><li class="listitem"><p>Einstellen der Standardkonten für Rundungserträge und
72
            -aufwendungen (unter Mandantenkonfiguration → Standardkonten
73
            veränderbar)</p></li><li class="listitem"><p>das verwendete Zahlenformat wird auf
74
            <code class="varname">1'000.00</code> eingestellt (unter Programm →
75
            Benutzereinstellungen veränderbar)</p></li><li class="listitem"><p>DATEV-Automatik und UStVA werden nicht angezeigt,
76
            Erfolgsrechnung ersetzt GUV ( unter Mandantenkonfiguration →
77
            Features veränderbar)</p></li></ul></div><p>Nutzt man wiederkehrende Rechnungen, kann man unter
78
        <code class="varname">[periodic_invoices]</code> den Login eines Benutzers
79
        angeben, der nach Erstellung der Rechnungen eine entsprechende E-Mail
80
        mit Informationen über die erstellten Rechnungen bekommt.</p><p>kivitendo bringt eine eigene Komponente zur zeitgesteuerten
81
        Ausführung bestimmter Aufgaben mit, den <a class="link" href="ch02s08.html" title="2.8. Der Task-Server">Task-Server</a>. Er wird u.a. für
82
        Features wie die <a class="link" href="ch03.html#features.periodic-invoices" title="3.1. Wiederkehrende Rechnungen">wiederkehrenden Rechnungen</a>
83
        benötigt, erledigt aber auch andere erforderliche Aufgaben und muss
84
        daher in Betrieb genommen werden. Seine Einrichtung wird im Abschnitt
85
        <a class="link" href="ch02s08.html" title="2.8. Der Task-Server">Task-Server</a> genauer
86
        beschrieben.</p><p>Für Entwickler finden sich unter <code class="varname">[debug]</code>
87
        wichtige Funktionen, um die Fehlersuche zu erleichtern.</p></div><div class="sect2" title="2.5.3. Versionen vor 2.6.3"><div class="titlepage"><div><div><h3 class="title"><a name="config.config-file.prior-versions"></a>2.5.3. Versionen vor 2.6.3</h3></div></div></div><p>In älteren kivitendo Versionen gab es im Verzeichnis
88
        <code class="filename">config</code> die Dateien
89
        <code class="filename">authentication.pl</code> und
90
        <code class="filename">lx-erp.conf</code>, die jeweils Perl-Dateien waren. Es
91
        gab auch die Möglichkeit, eine lokale Version der Konfigurationsdatei
92
        zu erstellen (<code class="filename">lx-erp-local.conf</code>). Dies ist ab
93
        2.6.3 nicht mehr möglich, aber auch nicht mehr nötig.</p><p>Beim Update von einer kivitendo-Version vor 2.6.3 auf 2.6.3 oder
94
        jünger müssen die Einstellungen aus den alten Konfigurationsdateien
95
        manuell übertragen und die alten Konfigurationsdateien anschließend
96
        gelöscht oder verschoben werden. Ansonsten zeigt kivitendo eine
97
        entsprechende Fehlermeldung an.</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. Manuelle Installation des Programmpaketes&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. Anpassung der PostgreSQL-Konfiguration</td></tr></table></div></body></html>
doc/html/ch02s06.html
1 1
<html><head>
2 2
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
3
   <title>2.6. 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 3.8.0: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch02.html" title="Kapitel 2. Installation und Grundkonfiguration"><link rel="prev" href="ch02s05.html" title="2.5. Anpassung der PostgreSQL-Konfiguration"><link rel="next" href="ch02s07.html" title="2.7. 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.6. Webserver-Konfiguration</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s05.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="ch02s07.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="2.6. Webserver-Konfiguration"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Apache-Konfiguration"></a>2.6. Webserver-Konfiguration</h2></div></div></div><div class="sect2" title="2.6.1. Grundkonfiguration mittels CGI"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1190"></a>2.6.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="ch02s06.html#Apache-Konfiguration.FCGI" title="2.6.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">AliasMatch ^/kivitendo-erp/[^/]+\.pl /var/www/kivitendo-erp/dispatcher.pl
10
Alias /kivitendo-erp/ /var/www/kivitendo-erp/
3
   <title>2.6. 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 3.8.0: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch02.html" title="Kapitel 2. Installation und Grundkonfiguration"><link rel="prev" href="ch02s05.html" title="2.5. kivitendo-Konfigurationsdatei"><link rel="next" href="ch02s07.html" title="2.7. 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.6. Anpassung der PostgreSQL-Konfiguration</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s05.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="ch02s07.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="2.6. Anpassung der PostgreSQL-Konfiguration"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Anpassung-der-PostgreSQL-Konfiguration"></a>2.6. Anpassung der PostgreSQL-Konfiguration</h2></div></div></div><p>PostgreSQL muss auf verschiedene Weisen angepasst werden.</p><p>Dies variert je nach eingesetzter Distribution, da distributionsabhängig unterschiedliche Strategien beim Upgrade der Postgres Version eingesetzt werden.
4
            Als Hinweis einige Links zu den drei Distribution (Stand Dezember 2018):</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
5
                  <a class="ulink" href="https://fedoraproject.org/wiki/PostgreSQL" target="_top">Fedora (Postgres-Installation unter Fedora)</a>
6
               </p></li><li class="listitem"><p>
7
                  <a class="ulink" href="https://help.ubuntu.com/lts/serverguide/postgresql.html" target="_top">Ubuntu (Infos für Postgres für die aktuelle LTS Version)</a>
8
               </p></li><li class="listitem"><p>
9
                  <a class="ulink" href="https://de.opensuse.org/PostgreSQL" target="_top">OpenSuSE (aktuell nur bis Version OpenSuSE 13 verifiziert)</a>
10
               </p></li></ul></div><div class="sect2" title="2.6.1. Zeichensätze/die Verwendung von Unicode/UTF-8"><div class="titlepage"><div><div><h3 class="title"><a name="Zeichens%C3%A4tze-die-Verwendung-von-UTF-8"></a>2.6.1. Zeichensätze/die Verwendung von Unicode/UTF-8</h3></div></div></div><p>kivitendo setzt zwingend voraus, dass die Datenbank
11
        Unicode/UTF-8 als Encoding einsetzt. Bei aktuellen
12
        Serverinstallationen braucht man hier meist nicht einzugreifen.</p><p>Das Encoding des Datenbankservers kann überprüft werden. Ist das
13
        Encoding der Datenbank "template1" "Unicode" bzw. "UTF-8", so braucht
14
        man nichts weiteres diesbezüglich unternehmen. Zum Testen:</p><pre class="programlisting">su postgres
15
echo '\l' | psql
16
exit </pre><p>Andernfalls ist es notwendig, einen neuen Datenbankcluster mit
17
        Unicode-Encoding anzulegen und diesen zu verwenden. Unter Debian und
18
        Ubuntu kann dies z.B. für PostgreSQL 9.3 mit dem folgenden Befehl
19
        getan werden:</p><pre class="programlisting">pg_createcluster --locale=de_DE.UTF-8 --encoding=UTF-8 9.3 clustername</pre><p>Die Datenbankversionsnummer muss an die tatsächlich verwendete
20
        Versionsnummer angepasst werden.</p><p>Unter anderen Distributionen gibt es ähnliche Methoden.</p><p>Das Encoding einer Datenbank kann in <span class="command"><strong>psql</strong></span> mit
21
        <code class="literal">\l</code> geprüft werden.</p></div><div class="sect2" title="2.6.2. Änderungen an Konfigurationsdateien"><div class="titlepage"><div><div><h3 class="title"><a name="%C3%84nderungen-an-Konfigurationsdateien"></a>2.6.2. Änderungen an Konfigurationsdateien</h3></div></div></div><p>In der Datei <code class="filename">postgresql.conf</code>, die je nach
22
        Distribution in verschiedenen Verzeichnissen liegen kann (z.B.
23
        <code class="filename">/var/lib/pgsql/data/</code> oder
24
        <code class="filename">/etc/postgresql/</code>), muss sichergestellt werden,
25
        dass TCP/IP-Verbindungen aktiviert sind. Das Verhalten wird über den
26
        Parameter <code class="varname">listen_address</code> gesteuert. Laufen
27
        PostgreSQL und kivitendo auf demselben Rechner, so kann dort der Wert
28
        <code class="literal">localhost</code> verwendet werden. Andernfalls müssen
29
        Datenbankverbindungen auch von anderen Rechnern aus zugelassen werden,
30
        was mit dem Wert <code class="literal">*</code> geschieht.</p><p>In der Datei <code class="filename">pg_hba.conf</code>, die im gleichen
31
        Verzeichnis wie die <code class="filename">postgresql.conf</code> zu finden
32
        sein sollte, müssen die Berechtigungen für den Zugriff geändert
33
        werden. Hier gibt es mehrere Möglichkeiten. Sinnvoll ist es nur die
34
        nötigen Verbindungen immer zuzulassen, für eine lokal laufende
35
        Datenbank zum Beispiel:</p><pre class="programlisting">local all kivitendo password
36
host all kivitendo 127.0.0.1 255.255.255.255 password</pre></div><div class="sect2" title="2.6.3. Erweiterung für servergespeicherte Prozeduren"><div class="titlepage"><div><div><h3 class="title"><a name="Erweiterung-f%C3%BCr-servergespeicherte-Prozeduren"></a>2.6.3. Erweiterung für servergespeicherte Prozeduren</h3></div></div></div><p>In der Datenbank <code class="literal">template1</code> muss die
37
        Unterstützung für servergespeicherte Prozeduren eingerichet werden.
38
        Melden Sie sich dafür als Benutzer “postgres” an der Datenbank an:
39
        </p><pre class="programlisting">su - postgres
40
psql template1</pre><p> führen Sie die folgenden Kommandos aus:</p><pre class="programlisting">CREATE EXTENSION IF NOT EXISTS plpgsql;
41
\q</pre><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>
42
                  <code class="literal">CREATE EXTENSION</code> ist seit Version 9.1 die
43
          bevorzugte Syntax um die Sprache <code class="literal">plpgsql</code>
44
          anzulegen. In diesen Versionen ist die Extension meist auch schon
45
          vorhanden. Sollten Sie eine ältere Version von Postgres haben,
46
          benutzen Sie stattdessen den folgenden Befehl.</p><pre class="programlisting">CREATE LANGUAGE 'plpgsql';
47
\q</pre></td></tr></table></div></div><div class="sect2" title="2.6.4. Erweiterung für Trigram Prozeduren"><div class="titlepage"><div><div><h3 class="title"><a name="Erweiterung-f%C3%BCr-trigram"></a>2.6.4. Erweiterung für Trigram Prozeduren</h3></div></div></div><p>Ab Version 3.5.1 wird die Trigram-Index-Erweiterung benötigt.
48
        Diese wird mit dem SQL-Updatescript
49
        sql/Pg-upgrade2/trigram_extension.sql und Datenbank-Super-Benutzer
50
        Rechten automatisch installiert. Dazu braucht der
51
        DatenbankSuperbenutzer "postgres" ein Passwort.</p><pre class="programlisting">su - postgres
52
psql
53
\password postgres
11 54

  
12
&lt;Directory /var/www/kivitendo-erp&gt;
13
 AddHandler cgi-script .pl
14
 Options ExecCGI Includes FollowSymlinks
15
&lt;/Directory&gt;
16

  
17
&lt;Directory /var/www/kivitendo-erp/users&gt;
18
 Require all granted
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><p>Bei einigen Distribution (Ubuntu ab 14.04, Debian ab 8.2) muss
22
          noch explizit das cgi-Modul mittels </p><pre class="programlisting">a2enmod cgi</pre><p>
23
          aktiviert werden.</p></td></tr></table></div><p>Auf einigen Webservern werden manchmal die Grafiken und
24
        Style-Sheets nicht ausgeliefert. In solchen Fällen hat es oft
25
        geholfen, die folgende Option in die Konfiguration aufzunehmen:</p><pre class="programlisting">EnableSendfile Off</pre></div><div class="sect2" title="2.6.2. Konfiguration für FastCGI/FCGI"><div class="titlepage"><div><div><h3 class="title"><a name="Apache-Konfiguration.FCGI"></a>2.6.2. Konfiguration für FastCGI/FCGI</h3></div></div></div><div class="sect3" title="2.6.2.1. Was ist FastCGI?"><div class="titlepage"><div><div><h4 class="title"><a name="Apache-Konfiguration.FCGI.WasIstEs"></a>2.6.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>
26
          kopiert:</p><p>
27
                  [<span class="citation"> FastCGI ist ein Standard für die Einbindung
28
          externer Software zur Generierung dynamischer Webseiten in einem
29
          Webserver. FastCGI ist vergleichbar zum Common Gateway Interface
30
          (CGI), wurde jedoch entwickelt, um dessen Performance-Probleme zu
31
          umgehen. </span>]
32
               </p></div><div class="sect3" title="2.6.2.2. Warum FastCGI?"><div class="titlepage"><div><div><h4 class="title"><a name="Apache-Konfiguration.FCGI.Warum"></a>2.6.2.2. Warum FastCGI?</h4></div></div></div><p>Perl Programme (wie kivitendo eines ist) werden nicht statisch
33
          kompiliert. Stattdessen werden die Quelldateien bei jedem Start
34
          übersetzt, was bei kurzen Laufzeiten einen Großteil der Laufzeit
35
          ausmacht. Während SQL Ledger einen Großteil der Funktionalität in
36
          einzelne Module kapselt, um immer nur einen kleinen Teil laden zu
37
          müssen, ist die Funktionalität von kivitendo soweit gewachsen, dass
38
          immer mehr Module auf den Rest des Programms zugreifen. Zusätzlich
39
          benutzen wir umfangreiche Bibliotheken um Funktionaltät nicht selber
40
          entwickeln zu müssen, die zusätzliche Ladezeit kosten. All dies
41
          führt dazu dass ein kivitendo Aufruf der Kernmasken mittlerweile
42
          deutlich länger dauert als früher, und dass davon 90% für das Laden
43
          der Module verwendet wird.</p><p>Mit FastCGI werden nun die Module einmal geladen, und danach
44
          wird nur die eigentliche Programmlogik ausgeführt.</p></div><div class="sect3" title="2.6.2.3. Getestete Kombinationen aus Webservern und Plugin"><div class="titlepage"><div><div><h4 class="title"><a name="Apache-Konfiguration.FCGI.WebserverUndPlugin"></a>2.6.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.4.7 (Ubuntu 14.04.2 LTS) und mod_fcgid.</p></li><li class="listitem"><p>Apache 2.4.18 (Ubuntu 16.04 LTS) und mod_fcgid</p></li><li class="listitem"><p>Apache 2.4.29 (Ubuntu 18.04 LTS) und mod_fcgid</p></li><li class="listitem"><p>Apache 2.4.41 (Ubuntu 20.04 LTS) und mod_fcgid</p></li></ul></div><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
46
            strict in der Behandlung von Unicode, und verweigern bestimmte
47
            Eingaben von kivitendo. Falls es Probleme mit Umlauten in Ihrer
48
            Installation gibt, muss zwingend Version 0.68 oder aber Version
49
            0.72 und neuer eingesetzt werden.</p><p>Mit <a class="ulink" href="http://www.cpan.org" target="_top">CPAN</a> lässt sie
50
            sich die Vorgängerversion wie folgt 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.6.2.4. Konfiguration des Webservers"><div class="titlepage"><div><div><h4 class="title"><a name="Apache-Konfiguration.FCGI.Konfiguration"></a>2.6.2.4. Konfiguration des Webservers</h4></div></div></div><p>Bevor Sie versuchen, eine kivitendo Installation unter FCGI
51
          laufen zu lassen, empfiehlt es sich die Installation ersteinmal
52
          unter CGI aufzusetzen. FCGI macht es nicht einfach Fehler zu
53
          debuggen die beim ersten aufsetzen auftreten können. Sollte die
54
          Installation schon funktionieren, lesen Sie weiter.</p><p>Zuerst muss das FastCGI-Modul aktiviert werden. Dies kann
55
          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
56
          erfolgt durch Anpassung der vorhandenen <code class="function">Alias</code>-
57
          und <code class="function">Directory</code>-Direktiven. Dabei wird zwischen
58
          dem Installationspfad von kivitendo im Dateisystem
59
          ("<code class="filename">/path/to/kivitendo-erp</code>") und der URL
60
          unterschieden, unter der kivitendo im Webbrowser erreichbar ist
61
          ("<code class="filename">/url/for/kivitendo-erp</code>").</p><p>Folgender Konfigurationsschnipsel funktioniert mit
62
          mod_fastcgi:</p><pre class="programlisting">AliasMatch ^/url/for/kivitendo-erp/[^/]+\.pl /path/to/kivitendo-erp/dispatcher.fcgi
63
Alias       /url/for/kivitendo-erp/          /path/to/kivitendo-erp/
64

  
65
&lt;Directory /path/to/kivitendo-erp&gt;
66
  AllowOverride All
67
  Options ExecCGI Includes FollowSymlinks
68
  Require all granted
69
&lt;/Directory&gt;
70

  
71
&lt;DirectoryMatch /path/to/kivitendo-erp/users&gt;
72
Require all denied
73
&lt;/DirectoryMatch&gt;</pre><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>Wer einen älteren Apache als Version 2.4 im Einsatz hat,
74
            muss entsprechend die Syntax der Directorydirektiven verändert.
75
            Statt</p><pre class="programlisting">Require all granted</pre><p>muß man Folgendes einstellen:</p><pre class="programlisting">
76
  Order Allow,Deny
77
  Allow from All </pre><p>und statt</p><pre class="programlisting">Require all denied</pre><p>muss stehen:</p><pre class="programlisting">
78
  Order Deny,Allow
79
  Deny from All </pre></td></tr></table></div><p>Seit mod_fcgid-Version 2.3.6 gelten sehr kleine Grenzen für
80
          die maximale Größe eines Requests. Diese sollte wie folgt
81
          hochgesetzt werden:</p><pre class="programlisting">FcgidMaxRequestLen 10485760</pre><p>Das Ganze sollte dann so aussehen:</p><pre class="programlisting">AddHandler fcgid-script .fpl
82
AliasMatch ^/url/for/kivitendo-erp/[^/]+\.pl /path/to/kivitendo-erp/dispatcher.fpl
83
Alias       /url/for/kivitendo-erp/          /path/to/kivitendo-erp/
84
FcgidMaxRequestLen 10485760
85

  
86
&lt;Directory /path/to/kivitendo-erp&gt;
87
  AllowOverride All
88
  Options ExecCGI Includes FollowSymlinks
89
  Require all granted
90
&lt;/Directory&gt;
91

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

  
102
# Zugriff mit mod_fcgid:
103
AliasMatch ^/url/for/kivitendo-erp-fcgid/[^/]+\.pl /path/to/kivitendo-erp/dispatcher.fpl
104
Alias       /url/for/kivitendo-erp-fcgid/          /path/to/kivitendo-erp/</pre><p>Dann ist unter <code class="filename">/url/for/kivitendo-erp/</code>
105
          die normale Version erreichbar, und unter
106
          <code class="constant">/url/for/kivitendo-erp-fcgid/</code> die
107
          FastCGI-Version.</p></div></div><div class="sect2" title="2.6.3. Authentifizierung mittels HTTP Basic Authentication"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1344"></a>2.6.3. Authentifizierung mittels HTTP Basic Authentication</h3></div></div></div><p>
108
        Kivitendo unterstützt, dass Benutzerauthentifizierung über den Webserver mittels des »Basic«-HTTP-Authentifizierungs-Schema erfolgt
109
        (siehe <a class="ulink" href="https://tools.ietf.org/html/rfc7617" target="_top">RFC 7617</a>). Dazu ist es aber nötig, dass der dabei vom Client
110
        mitgeschickte Header <code class="constant">Authorization</code> vom Webserver an Kivitendo über die Umgebungsvariable
111
        <code class="constant">HTTP_AUTHORIZATION</code> weitergegeben wird, was standardmäßig nicht der Fall ist. Für Apache kann dies über die
112
        folgende Konfigurationsoption aktiviert werden:
113
       </p><pre class="programlisting">SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1</pre></div><div class="sect2" title="2.6.4. Aktivierung von mod_rewrite/directory_match für git basierte Installationen"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1360"></a>2.6.4. Aktivierung von mod_rewrite/directory_match für git basierte Installationen</h3></div></div></div><p>
114
        Aufgrund von aktuellen (Mitte 2020) Sicherheitswarnungen für git basierte Webanwendungen ist die mitausgelieferte .htaccess
115
        restriktiver geworden und verhindert somit das Auslesen von git basierten Daten.
116
        Für debian/ubuntu muss das Modul mod_rewrite einmalig so aktiviert werden:
117
        </p><pre class="programlisting">a2enmod rewrite</pre><p>
118
        Alternativ und für Installationen ohne Apache ist folgender Artikel interessant:
119
        <a class="ulink" href="https://www.cyberscan.io/blog/git-luecke" target="_top">git-lücke</a>.
120
        Anstelle des dort beschriebenen DirectoryMatch für Apache2 würden wir etwas weitergehend auch noch das Verzeichnis config miteinbeziehen
121
        sowie ferner auch die Möglichkeit nicht ausschließen, dass es in Unterverzeichnissen auch noch .git Repositories geben kann.
122
        Die Empfehlung für Apache 2.4 wäre damit:
123
        </p><pre class="programlisting">
124
        &lt;DirectoryMatch "/(\.git|config)/"&gt;
125
          Require all denied
126
        &lt;/DirectoryMatch&gt;</pre><p>
127
       
128
            </p></div><div class="sect2" title="2.6.5. Weitergehende Konfiguration"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1374"></a>2.6.5. Weitergehende Konfiguration</h3></div></div></div><p>Für einen deutlichen Sicherheitsmehrwert sorgt die Ausführung
129
        von kivitendo nur über https-verschlüsselten Verbindungen, sowie
130
        weiteren Zusatzmassnahmen, wie beispielsweise Basic Authenticate. Die
131
        Konfigurationsmöglichkeiten sprengen allerdings den Rahmen dieser
132
        Anleitung, hier ein Hinweis auf einen entsprechenden <a class="ulink" href="https://www.kivitendo.de/boards/1/topics/142" target="_top">Foreneintrag
133
        (Stand Sept. 2015)</a> und einen aktuellen (Stand Mai 2017) <a class="ulink" href="https://mozilla.github.io/server-side-tls/ssl-config-generator/" target="_top">
134
        SSL-Konfigurations-Generator</a>.</p></div><div class="sect2" title="2.6.6. Aktivierung von Apache2 modsecurity"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1385"></a>2.6.6. Aktivierung von Apache2 modsecurity</h3></div></div></div><p>Aufgrund des OpenSource Charakters ist kivitendo nicht "out of the box" sicher.
135
  Organisatorisch empfehlen wir hier die enge Zusammenarbeit mit einem kivitendo Partner der auch in der
136
Lage ist weiterführende Fragen in Bezug auf Datenschutz und Datensicherheit zu beantworten.
137
Unabhängig davon empfehlen wir im Webserver Bereich die Aktivierung und Konfiguration des Moduls modsecurity für den Apache2, damit
138
XSS und SQL-Injections verhindert werden.</p><p> Als Idee hierfür sei dieser Blog-Eintrag genannt:
139
<a class="ulink" href="https://doxsec.wordpress.com/2017/06/11/using-modsecurity-web-application-firewall-to-prevent-sql-injection-and-xss-using-blocking-rules/" target="_top">
140
        Test Apache2 modsecurity for SQL Injection</a>.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02s05.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="ch02s07.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">2.5. 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.7. Der Task-Server</td></tr></table></div></body></html>
55
Eingabe Passwort
56
\q</pre><p>Benutzername Postgres und Passwort können jetzt beim Anlegen
57
        einer Datenbank bzw. bei Updatescripten, die SuperuserRechte
58
        benötigen, eingegeben werden.</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>
59
                  <code class="literal">pg_trgm</code> ist je nach Distribution nicht im
60
          Standard-Paket von Postgres enthalten. Ein </p><pre class="programlisting">select * from pg_available_extensions where name ='pg_trgm';</pre><p>
61
          in template1 sollte entsprechend erfolgreich sein. Andernfalls muss
62
          das Paket nachinstalliert werden, bspw. bei debian/ubuntu
63
          </p><pre class="programlisting">apt install postgresql-contrib</pre><p>
64
               </p></td></tr></table></div></div><div class="sect2" title="2.6.5. Datenbankbenutzer anlegen"><div class="titlepage"><div><div><h3 class="title"><a name="Datenbankbenutzer-anlegen"></a>2.6.5. Datenbankbenutzer anlegen</h3></div></div></div><p>Wenn Sie nicht den Datenbanksuperuser “postgres” zum Zugriff
65
        benutzen wollen, so sollten Sie bei PostgreSQL einen neuen Benutzer
66
        anlegen. Ein Beispiel, wie Sie einen neuen Benutzer anlegen
67
        können:</p><p>Die Frage, ob der neue User Superuser sein soll, können Sie mit
68
        nein beantworten, genauso ist die Berechtigung neue User (Roles) zu
69
        generieren nicht nötig.</p><pre class="programlisting">su - postgres
70
createuser -d -P kivitendo
71
exit</pre><p>Wenn Sie später einen Datenbankzugriff konfigurieren, verändern
72
        Sie den evtl. voreingestellten Benutzer “postgres” auf “kivitendo”
73
        bzw. 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="ch02s05.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="ch02s07.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">2.5. 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.7. Webserver-Konfiguration</td></tr></table></div></body></html>
doc/html/ch02s07.html
1 1
<html><head>
2 2
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
3
   <title>2.7. Der Task-Server</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 3.8.0: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch02.html" title="Kapitel 2. Installation und Grundkonfiguration"><link rel="prev" href="ch02s06.html" title="2.6. Webserver-Konfiguration"><link rel="next" href="ch02s08.html" title="2.8. Benutzerauthentifizierung und Administratorpasswort"></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.7. Der Task-Server</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s06.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="ch02s08.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="2.7. Der Task-Server"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="config.task-server"></a>2.7. Der Task-Server</h2></div></div></div><p>Der Task-Server ist ein Prozess, der im Hintergrund läuft, in
4
      regelmäßigen Abständen nach abzuarbeitenden Aufgaben sucht und diese zu
5
      festgelegten Zeitpunkten abarbeitet (ähnlich wie Cron). Dieser Prozess
6
      wird u.a. für die Erzeugung der wiederkehrenden Rechnungen und weitere
7
      essenzielle Aufgaben benutzt.</p><p>Der Task-Server muss einmalig global in der Konfigurationsdatei
8
      konfiguriert werden. Danach wird er für jeden Mandanten, für den er
9
      laufen soll, in der Adminsitrationsmaske eingeschaltet.</p><p>Beachten Sie, dass der Task-Server in den Boot-Vorgang Ihres
10
      Servers integriert werden muss, damit er automatisch gestartet wird.
11
      Dies kann kivitendo nicht für Sie erledigen.</p><p>Da der Task-Server als Perlscript läuft, wird Arbeitsspeicher, der
12
      einmal benötigt wurde, nicht mehr an das Betriebssystem zurückgegeben,
13
      solange der Task-Server läuft. Dies kann dazu führen, dass ein länger
14
      laufender Task-Server mit der Zeit immer mehr Arbeitsspeicher für sich
15
      beansprucht. Es ist deshalb sinnvoll, dass der Task-Server in
16
      regelmässigen Abständen neu gestartet wird. Allerdings berücksichtigt der
17
      Task-Server ein Memory-Limit, wenn dieses in der Konfigurationsdatei
18
      angegeben ist. Bei Überschreiten dieses Limits beendet sich der
19
      Task-Server. Sofern der Task-Server als systemd-Service mit dem
20
      mitgelieferten Skript eingerichtet wurde, startet dieser danach
21
      automatisch erneut.</p><div class="sect2" title="2.7.1. Verfügbare und notwendige Konfigurationsoptionen"><div class="titlepage"><div><div><h3 class="title"><a name="Konfiguration-des-Task-Servers"></a>2.7.1. Verfügbare und notwendige Konfigurationsoptionen</h3></div></div></div><p>Die Konfiguration erfolgt über den Abschnitt
22
        <code class="literal">[task_server]</code> in der Datei
23
        <code class="filename">config/kivitendo.conf</code>. Die dort verfügbaren
24
        Optionen sind:</p><div class="variablelist"><dl><dt><span class="term">
25
                     <code class="varname">run_as</code>
26
                  </span></dt><dd><p>Wird der Server vom Systembenutzer <code class="literal">root</code>
27
              gestartet, so wechselt er auf den mit <code class="literal">run_as</code>
28
              angegebenen Systembenutzer. Der Systembenutzer muss dieselben
29
              Lese- und Schreibrechte haben, wie auch der Webserverbenutzer
30
              (siehe see <a class="xref" href="ch02s03.html" title="2.3. Manuelle Installation des Programmpaketes">Manuelle Installation des Programmpaketes</a>). Daher
31
              ist es erforderlich, hier denselben Systembenutzer einzutragen,
32
              unter dem auch der Webserver läuft.</p></dd><dt><span class="term">
33
                     <code class="varname">debug</code>
34
                  </span></dt><dd><p>Schaltet Debug-Informationen an und aus.</p></dd></dl></div></div><div class="sect2" title="2.7.2. Konfiguration der Mandanten für den Task-Server"><div class="titlepage"><div><div><h3 class="title"><a name="Konfiguration-der-Mandanten-fuer-den-Task-Servers"></a>2.7.2. Konfiguration der Mandanten für den Task-Server</h3></div></div></div><p>Ist der Task-Server grundlegend konfiguriert, so muss
35
        anschließend jeder Mandant, für den der Task-Server laufen soll,
36
        einmalig konfiguriert werden. Dazu kann in der Maske zum Bearbeiten
37
        von Mandanten im Administrationsbereich eine kivitendo-Benutzerkennung
38
        ausgewählt werden, unter der der Task-Server seine Arbeit
39
        verrichtet.</p><p>Ist in dieser Einstellung keine Benutzerkennung ausgewählt, so
40
        wird der Task-Server für diesen Mandanten keine Aufgaben
41
        ausführen.</p></div><div class="sect2" title="2.7.3. Automatisches Starten des Task-Servers beim Booten"><div class="titlepage"><div><div><h3 class="title"><a name="Einbinden-in-den-Boot-Prozess"></a>2.7.3. Automatisches Starten des Task-Servers beim Booten</h3></div></div></div><p>Der Task-Server verhält sich von seinen Optionen her wie ein
42
        reguläres SystemV-kompatibles Boot-Script. Außerdem wechselt er beim
43
        Starten automatisch in das kivitendo-Installationsverzeichnis.</p><p>Deshalb ist es möglich, ihn durch Setzen eines symbolischen
44
        Links aus einem der Runlevel-Verzeichnisse heraus in den Boot-Prozess
45
        einzubinden. Da das bei neueren Linux-Distributionen aber nicht
46
        zwangsläufig funktioniert, werden auch Start-Scripte mitgeliefert, die
47
        anstelle eines symbolischen Links verwendet werden können.</p><div class="sect3" title="2.7.3.1. SystemV-basierende Systeme (z.B. ältere Debian, ältere openSUSE, ältere Fedora)"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1458"></a>2.7.3.1. SystemV-basierende Systeme (z.B. ältere Debian, ältere
48
          openSUSE, ältere Fedora)</h4></div></div></div><p>Kopieren Sie die Datei
49
          <code class="filename">scripts/boot/system-v/kivitendo-task-server</code>
50
          nach <code class="filename">/etc/init.d/kivitendo-task-server</code>. Passen
51
          Sie in der kopierten Datei den Pfad zum Task-Server an (Zeile
52
          <code class="literal">DAEMON=....</code>). Binden Sie das Script in den
53
          Boot-Prozess ein. Dies ist distributionsabhängig:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Debian-basierende Systeme:</p><pre class="programlisting">update-rc.d kivitendo-task-server defaults
54
insserv kivitendo-task-server</pre></li><li class="listitem"><p>Ältere openSUSE und ältere Fedora:</p><pre class="programlisting">chkconfig --add kivitendo-task-server</pre></li></ul></div><p>Danach kann der Task-Server mit dem folgenden Befehl gestartet
55
          werden:</p><pre class="programlisting">/etc/init.d/kivitendo-task-server start</pre></div><div class="sect3" title="2.7.3.2. Upstart-basierende Systeme (z.B. Ubuntu bis 14.04)"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1487"></a>2.7.3.2. Upstart-basierende Systeme (z.B. Ubuntu bis 14.04)</h4></div></div></div><p>Kopieren Sie die Datei
56
          <code class="filename">scripts/boot/upstart/kivitendo-task-server.conf</code>
57
          nach <code class="filename">/etc/init/kivitendo-task-server.conf</code>.
58
          Passen Sie in der kopierten Datei den Pfad zum Task-Server an (Zeile
59
          <code class="literal">exec ....</code>).</p><p>Danach kann der Task-Server mit dem folgenden Befehl gestartet
60
          werden:</p><pre class="programlisting">service kivitendo-task-server start</pre></div><div class="sect3" title="2.7.3.3. systemd-basierende Systeme (z.B. neure openSUSE, neuere Fedora, neuere Ubuntu und neuere Debians)"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1505"></a>2.7.3.3. systemd-basierende Systeme (z.B. neure openSUSE, neuere
61
          Fedora, neuere Ubuntu und neuere Debians)</h4></div></div></div><p>Kopieren Sie die Datei
62
          <code class="filename">scripts/boot/systemd/kivitendo-task-server.service</code>
63
          nach <code class="filename">/etc/systemd/system/</code>. Passen Sie in der
64
          kopierten Datei den Pfad zum Task-Server an (Zeilen
65
          <code class="literal">ExecStart=....</code> und
66
          <code class="literal">ExecStop=...</code>).</p><p>Machen Sie anschließend das Script systemd bekannt, und binden
67
          Sie es in den Boot-Prozess ein. Dazu führen Sie die folgenden Befehl
68
          aus:</p><pre class="programlisting">systemctl daemon-reload
69
systemctl enable kivitendo-task-server.service</pre><p>Wenn Sie den Task-Server jetzt sofort starten möchten, anstatt
70
          den Server neu zu starten, so können Sie das mit dem folgenden
71
          Befehl tun:</p><pre class="programlisting">systemctl start kivitendo-task-server.service</pre><p>Ein so eingerichteter Task-Server startet nach Beendigung
72
          automatisch erneut. Das betrifft eine Beendigung über die Oberfläche,
73
          eine Beendingung über die Prozesskontrolle und eine Beendigung bei
74
          Überschreiten des Memory-Limits. Soll der Task-Server nicht erneut
75
          starten, so können Sie ihn mit folgendem Befehl stoppen:</p><pre class="programlisting">systemctl stop kivitendo-task-server.service</pre></div></div><div class="sect2" title="2.7.4. Wie der Task-Server gestartet und beendet wird"><div class="titlepage"><div><div><h3 class="title"><a name="Prozesskontrolle"></a>2.7.4. Wie der Task-Server gestartet und beendet wird</h3></div></div></div><p>Der Task-Server wird wie folgt kontrolliert:</p><pre class="programlisting">./scripts/task_server.pl Befehl</pre><p>
76
               <code class="literal">Befehl</code> ist dabei eine der folgenden
77
        Optionen:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
78
                     <code class="literal">start</code> startet eine neue Instanz des
79
            Task-Servers. Die Prozess-ID wird innerhalb des
80
            <code class="filename">users</code>-Verzeichnisses abgelegt.</p></li><li class="listitem"><p>
81
                     <code class="literal">stop</code> beendet einen laufenden
82
            Task-Server.</p></li><li class="listitem"><p>
83
                     <code class="literal">restart</code> beendet und startet ihn
84
            neu.</p></li><li class="listitem"><p>
85
                     <code class="literal">status</code> berichtet, ob der Task-Server
86
            läuft.</p></li></ul></div><p>Der Task-Server wechselt beim Starten automatisch in das
87
        kivitendo-Installationsverzeichnis.</p><p>Dieselben Optionen können auch für die SystemV-basierenden
88
        Runlevel-Scripte benutzt werden (siehe oben).</p><p>Wurde der Task-Server als systemd-Service eingerichtet (s.o.),
89
        so startet dieser nach Beendigung automatisch erneut.</p></div><div class="sect2" title="2.7.5. Exemplarische Konfiguration eines Hintergrund-Jobs, der die Jahreszahl in allen Nummernkreisen zum Jahreswechsel erhöht"><div class="titlepage"><div><div><h3 class="title"><a name="Tasks-konfigurieren"></a>2.7.5. Exemplarische Konfiguration eines Hintergrund-Jobs, der die Jahreszahl in allen Nummernkreisen zum Jahreswechsel erhöht</h3></div></div></div><p>Hintergrund-Jobs werden über System -&gt; Hintergrund-Jobs und Task-Server -&gt; Aktuelle Hintergrund-Jobs anzeigen -&gt; Aktions-Knopf 'erfassen' angelegt. </p><p>Nachdem wir über das Menü dort angelangt sind, legen wir unseren exemplarischen Hintergrund-Jobs "Erhöhung der Nummernkreise" mit folgenden Werten an:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
90
                     <code class="literal">Aktiv:</code> Hier ein 'Ja' auswählen</p></li><li class="listitem"><p>
91
                     <code class="literal">Ausführungsart:</code> 'wiederholte Ausführung' auswählen</p></li><li class="listitem"><p>
92
                     <code class="literal">Paketname:</code> 'SetNumberRange' auswählen</p></li><li class="listitem"><p>
93
                     <code class="literal">Ausführungszeitplan:</code> Hier entsprechend Werte wie in der crontab eingeben.</p><p>Syntax:</p><pre class="programlisting">* * * * *
94
┬ ┬ ┬ ┬ ┬
95
│ │ │ │ │
96
│ │ │ │ └──── Wochentag (0-7, Sonntag ist 0 oder 7)
97
│ │ │ └────── Monat (1-12)
98
│ │ └──────── Tag (1-31)
99
│ └────────── Stunde (0-23)
100
└──────────── Minute (0-59)  </pre><p>Die Sterne können folgende Werte haben:</p><pre class="programlisting">
101
1 2 3 4 5
3
   <title>2.7. 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 3.8.0: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch02.html" title="Kapitel 2. Installation und Grundkonfiguration"><link rel="prev" href="ch02s06.html" title="2.6. Anpassung der PostgreSQL-Konfiguration"><link rel="next" href="ch02s08.html" title="2.8. 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.7. Webserver-Konfiguration</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s06.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="ch02s08.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="2.7. Webserver-Konfiguration"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Apache-Konfiguration"></a>2.7. Webserver-Konfiguration</h2></div></div></div><div class="sect2" title="2.7.1. Grundkonfiguration mittels CGI"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1202"></a>2.7.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="ch02s07.html#Apache-Konfiguration.FCGI" title="2.7.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">AliasMatch ^/kivitendo-erp/[^/]+\.pl /var/www/kivitendo-erp/dispatcher.pl
10
Alias /kivitendo-erp/ /var/www/kivitendo-erp/
102 11

  
103
1 = Minute (0-59)
104
2 = Stunde (0-23)
105
3 = Tag (0-31)
106
4 = Monat (1-12)
107
5 = Wochentag (0-7, Sonntag ist 0 oder 7)
108
</pre><p>Um die Ausführung auf eine Minute vor Sylvester zu setzen, müssen die folgenden Werte eingetragen werden:</p><pre class="programlisting">59 23 31 12 *</pre></li><li class="listitem"><p>
109
                     <code class="literal">Daten:</code>In diesem Feld können optionale Parameter für den Hintergrund im JSON-Format gesetzt werden. Der Hintergrund-Job <code class="literal">SetNumberRange</code> akzeptiert zwei Variable nämlich <code class="literal">digit_year</code> sowieso <code class="literal">multiplier</code>.</p><p> 
110
                     <code class="literal">digit_year</code> kann zwei Werte haben entweder 2 oder 4, darüber wird gesteuert ob die Jahreszahl zwei oder vierstellig kodiert wird (für 2019, dann entweder 19 oder 2019). Der Standardwert ist vierstellig.</p><p> 
111
                     <code class="literal">multiplier</code> ist ein Vielfaches von 10, darüber wird die erste Nummer im Nummernkreis (die Anzahl der Stellen) wie folgt bestimmt:</p><pre class="programlisting">
112
multiplier     Nummernkreis 2020
113
10        -&gt;   20200
114
100       -&gt;   202000
115
1000      -&gt;   2020000
116
</pre><p>Wir gehen jetzt beispielhaft von einer letzten Rechnungsnummer von RE2019456 aus. Demnach sollte ab Januar 2020 die erste Nummer RE2020001 sein. Da der Task auch Präfixe berücksichtigt, kann dies mit folgenden JSON-kodierten Werten umgesetzt werden:</p><p>
117
                     <code class="literal">Daten:</code>
118
                  </p><pre class="programlisting">multiplier: 100
119
digits_year: 4</pre></li></ul></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02s06.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="ch02s08.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">2.6. Webserver-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.8. Benutzerauthentifizierung und Administratorpasswort</td></tr></table></div></body></html>
12
&lt;Directory /var/www/kivitendo-erp&gt;
13
 AddHandler cgi-script .pl
14
 Options ExecCGI Includes FollowSymlinks
15
&lt;/Directory&gt;
16

  
17
&lt;Directory /var/www/kivitendo-erp/users&gt;
18
 Require all granted
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><p>Bei einigen Distribution (Ubuntu ab 14.04, Debian ab 8.2) muss
22
          noch explizit das cgi-Modul mittels </p><pre class="programlisting">a2enmod cgi</pre><p>
23
          aktiviert werden.</p></td></tr></table></div><p>Auf einigen Webservern werden manchmal die Grafiken und
24
        Style-Sheets nicht ausgeliefert. In solchen Fällen hat es oft
25
        geholfen, die folgende Option in die Konfiguration aufzunehmen:</p><pre class="programlisting">EnableSendfile Off</pre></div><div class="sect2" title="2.7.2. Konfiguration für FastCGI/FCGI"><div class="titlepage"><div><div><h3 class="title"><a name="Apache-Konfiguration.FCGI"></a>2.7.2. Konfiguration für FastCGI/FCGI</h3></div></div></div><div class="sect3" title="2.7.2.1. Was ist FastCGI?"><div class="titlepage"><div><div><h4 class="title"><a name="Apache-Konfiguration.FCGI.WasIstEs"></a>2.7.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>
26
          kopiert:</p><p>
27
                  [<span class="citation"> FastCGI ist ein Standard für die Einbindung
28
          externer Software zur Generierung dynamischer Webseiten in einem
29
          Webserver. FastCGI ist vergleichbar zum Common Gateway Interface
30
          (CGI), wurde jedoch entwickelt, um dessen Performance-Probleme zu
31
          umgehen. </span>]
32
               </p></div><div class="sect3" title="2.7.2.2. Warum FastCGI?"><div class="titlepage"><div><div><h4 class="title"><a name="Apache-Konfiguration.FCGI.Warum"></a>2.7.2.2. Warum FastCGI?</h4></div></div></div><p>Perl Programme (wie kivitendo eines ist) werden nicht statisch
33
          kompiliert. Stattdessen werden die Quelldateien bei jedem Start
34
          übersetzt, was bei kurzen Laufzeiten einen Großteil der Laufzeit
35
          ausmacht. Während SQL Ledger einen Großteil der Funktionalität in
36
          einzelne Module kapselt, um immer nur einen kleinen Teil laden zu
37
          müssen, ist die Funktionalität von kivitendo soweit gewachsen, dass
38
          immer mehr Module auf den Rest des Programms zugreifen. Zusätzlich
39
          benutzen wir umfangreiche Bibliotheken um Funktionaltät nicht selber
40
          entwickeln zu müssen, die zusätzliche Ladezeit kosten. All dies
41
          führt dazu dass ein kivitendo Aufruf der Kernmasken mittlerweile
42
          deutlich länger dauert als früher, und dass davon 90% für das Laden
43
          der Module verwendet wird.</p><p>Mit FastCGI werden nun die Module einmal geladen, und danach
44
          wird nur die eigentliche Programmlogik ausgeführt.</p></div><div class="sect3" title="2.7.2.3. Getestete Kombinationen aus Webservern und Plugin"><div class="titlepage"><div><div><h4 class="title"><a name="Apache-Konfiguration.FCGI.WebserverUndPlugin"></a>2.7.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.4.7 (Ubuntu 14.04.2 LTS) und mod_fcgid.</p></li><li class="listitem"><p>Apache 2.4.18 (Ubuntu 16.04 LTS) und mod_fcgid</p></li><li class="listitem"><p>Apache 2.4.29 (Ubuntu 18.04 LTS) und mod_fcgid</p></li><li class="listitem"><p>Apache 2.4.41 (Ubuntu 20.04 LTS) und mod_fcgid</p></li></ul></div><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
46
            strict in der Behandlung von Unicode, und verweigern bestimmte
47
            Eingaben von kivitendo. Falls es Probleme mit Umlauten in Ihrer
48
            Installation gibt, muss zwingend Version 0.68 oder aber Version
49
            0.72 und neuer eingesetzt werden.</p><p>Mit <a class="ulink" href="http://www.cpan.org" target="_top">CPAN</a> lässt sie
50
            sich die Vorgängerversion wie folgt 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.7.2.4. Konfiguration des Webservers"><div class="titlepage"><div><div><h4 class="title"><a name="Apache-Konfiguration.FCGI.Konfiguration"></a>2.7.2.4. Konfiguration des Webservers</h4></div></div></div><p>Bevor Sie versuchen, eine kivitendo Installation unter FCGI
51
          laufen zu lassen, empfiehlt es sich die Installation ersteinmal
52
          unter CGI aufzusetzen. FCGI macht es nicht einfach Fehler zu
53
          debuggen die beim ersten aufsetzen auftreten können. Sollte die
54
          Installation schon funktionieren, lesen Sie weiter.</p><p>Zuerst muss das FastCGI-Modul aktiviert werden. Dies kann
55
          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
56
          erfolgt durch Anpassung der vorhandenen <code class="function">Alias</code>-
57
          und <code class="function">Directory</code>-Direktiven. Dabei wird zwischen
58
          dem Installationspfad von kivitendo im Dateisystem
59
          ("<code class="filename">/path/to/kivitendo-erp</code>") und der URL
60
          unterschieden, unter der kivitendo im Webbrowser erreichbar ist
61
          ("<code class="filename">/url/for/kivitendo-erp</code>").</p><p>Folgender Konfigurationsschnipsel funktioniert mit
62
          mod_fastcgi:</p><pre class="programlisting">AliasMatch ^/url/for/kivitendo-erp/[^/]+\.pl /path/to/kivitendo-erp/dispatcher.fcgi
63
Alias       /url/for/kivitendo-erp/          /path/to/kivitendo-erp/
64

  
65
&lt;Directory /path/to/kivitendo-erp&gt;
66
  AllowOverride All
67
  Options ExecCGI Includes FollowSymlinks
68
  Require all granted
69
&lt;/Directory&gt;
70

  
71
&lt;DirectoryMatch /path/to/kivitendo-erp/users&gt;
72
Require all denied
73
&lt;/DirectoryMatch&gt;</pre><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>Wer einen älteren Apache als Version 2.4 im Einsatz hat,
74
            muss entsprechend die Syntax der Directorydirektiven verändert.
75
            Statt</p><pre class="programlisting">Require all granted</pre><p>muß man Folgendes einstellen:</p><pre class="programlisting">
76
  Order Allow,Deny
77
  Allow from All </pre><p>und statt</p><pre class="programlisting">Require all denied</pre><p>muss stehen:</p><pre class="programlisting">
78
  Order Deny,Allow
79
  Deny from All </pre></td></tr></table></div><p>Seit mod_fcgid-Version 2.3.6 gelten sehr kleine Grenzen für
80
          die maximale Größe eines Requests. Diese sollte wie folgt
81
          hochgesetzt werden:</p><pre class="programlisting">FcgidMaxRequestLen 10485760</pre><p>Das Ganze sollte dann so aussehen:</p><pre class="programlisting">AddHandler fcgid-script .fpl
82
AliasMatch ^/url/for/kivitendo-erp/[^/]+\.pl /path/to/kivitendo-erp/dispatcher.fpl
83
Alias       /url/for/kivitendo-erp/          /path/to/kivitendo-erp/
84
FcgidMaxRequestLen 10485760
85

  
86
&lt;Directory /path/to/kivitendo-erp&gt;
87
  AllowOverride All
88
  Options ExecCGI Includes FollowSymlinks
89
  Require all granted
90
&lt;/Directory&gt;
91

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

  
102
# Zugriff mit mod_fcgid:
103
AliasMatch ^/url/for/kivitendo-erp-fcgid/[^/]+\.pl /path/to/kivitendo-erp/dispatcher.fpl
104
Alias       /url/for/kivitendo-erp-fcgid/          /path/to/kivitendo-erp/</pre><p>Dann ist unter <code class="filename">/url/for/kivitendo-erp/</code>
105
          die normale Version erreichbar, und unter
106
          <code class="constant">/url/for/kivitendo-erp-fcgid/</code> die
107
          FastCGI-Version.</p></div></div><div class="sect2" title="2.7.3. Authentifizierung mittels HTTP Basic Authentication"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1356"></a>2.7.3. Authentifizierung mittels HTTP Basic Authentication</h3></div></div></div><p>
108
        Kivitendo unterstützt, dass Benutzerauthentifizierung über den Webserver mittels des »Basic«-HTTP-Authentifizierungs-Schema erfolgt
109
        (siehe <a class="ulink" href="https://tools.ietf.org/html/rfc7617" target="_top">RFC 7617</a>). Dazu ist es aber nötig, dass der dabei vom Client
110
        mitgeschickte Header <code class="constant">Authorization</code> vom Webserver an Kivitendo über die Umgebungsvariable
111
        <code class="constant">HTTP_AUTHORIZATION</code> weitergegeben wird, was standardmäßig nicht der Fall ist. Für Apache kann dies über die
112
        folgende Konfigurationsoption aktiviert werden:
113
       </p><pre class="programlisting">SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1</pre></div><div class="sect2" title="2.7.4. Aktivierung von mod_rewrite/directory_match für git basierte Installationen"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1372"></a>2.7.4. Aktivierung von mod_rewrite/directory_match für git basierte Installationen</h3></div></div></div><p>
114
        Aufgrund von aktuellen (Mitte 2020) Sicherheitswarnungen für git basierte Webanwendungen ist die mitausgelieferte .htaccess
115
        restriktiver geworden und verhindert somit das Auslesen von git basierten Daten.
116
        Für debian/ubuntu muss das Modul mod_rewrite einmalig so aktiviert werden:
117
        </p><pre class="programlisting">a2enmod rewrite</pre><p>
118
        Alternativ und für Installationen ohne Apache ist folgender Artikel interessant:
119
        <a class="ulink" href="https://www.cyberscan.io/blog/git-luecke" target="_top">git-lücke</a>.
120
        Anstelle des dort beschriebenen DirectoryMatch für Apache2 würden wir etwas weitergehend auch noch das Verzeichnis config miteinbeziehen
121
        sowie ferner auch die Möglichkeit nicht ausschließen, dass es in Unterverzeichnissen auch noch .git Repositories geben kann.
122
        Die Empfehlung für Apache 2.4 wäre damit:
123
        </p><pre class="programlisting">
124
        &lt;DirectoryMatch "/(\.git|config)/"&gt;
125
          Require all denied
126
        &lt;/DirectoryMatch&gt;</pre><p>
127
       
128
            </p></div><div class="sect2" title="2.7.5. Weitergehende Konfiguration"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1386"></a>2.7.5. Weitergehende Konfiguration</h3></div></div></div><p>Für einen deutlichen Sicherheitsmehrwert sorgt die Ausführung
129
        von kivitendo nur über https-verschlüsselten Verbindungen, sowie
130
        weiteren Zusatzmassnahmen, wie beispielsweise Basic Authenticate. Die
131
        Konfigurationsmöglichkeiten sprengen allerdings den Rahmen dieser
132
        Anleitung, hier ein Hinweis auf einen entsprechenden <a class="ulink" href="http://redmine.kivitendo-premium.de/boards/1/topics/142" target="_top">Foreneintrag
133
        (Stand Sept. 2015)</a> und einen aktuellen (Stand Mai 2017) <a class="ulink" href="https://mozilla.github.io/server-side-tls/ssl-config-generator/" target="_top">
134
        SSL-Konfigurations-Generator</a>.</p></div><div class="sect2" title="2.7.6. Aktivierung von Apache2 modsecurity"><div class="titlepage"><div><div><h3 class="title"><a name="d0e1397"></a>2.7.6. Aktivierung von Apache2 modsecurity</h3></div></div></div><p>Aufgrund des OpenSource Charakters ist kivitendo nicht "out of the box" sicher.
135
  Organisatorisch empfehlen wir hier die enge Zusammenarbeit mit einem kivitendo Partner der auch in der
136
Lage ist weiterführende Fragen in Bezug auf Datenschutz und Datensicherheit zu beantworten.
137
Unabhängig davon empfehlen wir im Webserver Bereich die Aktivierung und Konfiguration des Moduls modsecurity für den Apache2, damit
138
XSS und SQL-Injections verhindert werden.</p><p> Als Idee hierfür sei dieser Blog-Eintrag genannt:
139
<a class="ulink" href="https://doxsec.wordpress.com/2017/06/11/using-modsecurity-web-application-firewall-to-prevent-sql-injection-and-xss-using-blocking-rules/" target="_top">
140
        Test Apache2 modsecurity for SQL Injection</a>.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02s06.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="ch02s08.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">2.6. 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.8. Der Task-Server</td></tr></table></div></body></html>
doc/html/ch02s08.html
1 1
<html><head>
2 2
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
3
   <title>2.8. Benutzerauthentifizierung und Administratorpasswort</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 3.8.0: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch02.html" title="Kapitel 2. Installation und Grundkonfiguration"><link rel="prev" href="ch02s07.html" title="2.7. Der Task-Server"><link rel="next" href="ch02s09.html" title="2.9. Mandanten-, Benutzer- und Gruppenverwaltung"></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.8. Benutzerauthentifizierung und Administratorpasswort</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s07.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="ch02s09.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="2.8. Benutzerauthentifizierung und Administratorpasswort"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Benutzerauthentifizierung-und-Administratorpasswort"></a>2.8. Benutzerauthentifizierung und Administratorpasswort</h2></div></div></div><p>Informationen über die Einrichtung der Benutzerauthentifizierung,
4
      über die Verwaltung von Gruppen und weitere Einstellungen</p><div class="sect2" title="2.8.1. Grundlagen zur Benutzerauthentifizierung"><div class="titlepage"><div><div><h3 class="title"><a name="Grundlagen-zur-Benutzerauthentifizierung"></a>2.8.1. Grundlagen zur Benutzerauthentifizierung</h3></div></div></div><p>kivitendo verwaltet die Benutzerinformationen in einer
5
        Datenbank, die im folgenden “Authentifizierungsdatenbank” genannt
6
        wird. Für jeden Benutzer kann dort eine eigene Datenbank für die
7
        eigentlichen Finanzdaten hinterlegt sein. Diese beiden Datenbanken
8
        können, müssen aber nicht unterschiedlich sein.</p><p>Im einfachsten Fall gibt es für kivitendo nur eine einzige
9
        Datenbank, in der sowohl die Benutzerinformationen als auch die Daten
10
        abgelegt werden.</p><p>Zusätzlich ermöglicht es kivitendo, dass die Benutzerpasswörter gegen die Authentifizierungsdatenbank oder gegen einen oder
11
        mehrere LDAP-Server überprüft werden.</p><p>Welche Art der Passwortüberprüfung kivitendo benutzt und wie
12
        kivitendo die Authentifizierungsdatenbank erreichen kann, wird in der
13
        Konfigurationsdatei <code class="filename">config/kivitendo.conf</code>
14
        festgelegt. Diese muss bei der Installation und bei einem Upgrade von
15
        einer Version vor v2.6.0 angelegt werden. Eine
16
        Beispielkonfigurationsdatei
17
        <code class="filename">config/kivitendo.conf.default</code> existiert, die als
18
        Vorlage benutzt werden kann.</p></div><div class="sect2" title="2.8.2. Administratorpasswort"><div class="titlepage"><div><div><h3 class="title"><a name="Administratorpasswort"></a>2.8.2. Administratorpasswort</h3></div></div></div><p>Das Passwort, das zum Zugriff auf das Administrationsinterface
19
        von kivitendo benutzt wird, wird ebenfalls in dieser Datei
20
        gespeichert. Es kann auch nur dort und nicht mehr im
21
        Administrationsinterface selber geändert werden. Der Parameter dazu
22
        heißt <code class="varname">admin_password</code> im Abschnitt
23
        <code class="varname">[authentication]</code>.</p></div><div class="sect2" title="2.8.3. Authentifizierungsdatenbank"><div class="titlepage"><div><div><h3 class="title"><a name="Authentifizierungsdatenbank"></a>2.8.3. Authentifizierungsdatenbank</h3></div></div></div><p>Die Verbindung zur Authentifizierungsdatenbank wird mit den
24
        Parametern in <code class="varname">[authentication/database]</code>
25
        konfiguriert. Hier sind die folgenden Parameter anzugeben:</p><div class="variablelist"><dl><dt><span class="term">
26
                     <code class="literal">host</code>
27
                  </span></dt><dd><p>Der Rechnername oder die IP-Adresse des
28
              Datenbankservers</p></dd><dt><span class="term">
29
                     <code class="literal">port</code>
30
                  </span></dt><dd><p>Die Portnummer des Datenbankservers, meist 5432</p></dd><dt><span class="term">
31
                     <code class="literal">db</code>
32
                  </span></dt><dd><p>Der Name der Authentifizierungsdatenbank</p></dd><dt><span class="term">
33
                     <code class="literal">user</code>
34
                  </span></dt><dd><p>Der Benutzername, mit dem sich kivitendo beim
35
              Datenbankserver anmeldet (z.B.
36
              "<code class="literal">postgres</code>")</p></dd><dt><span class="term">
37
                     <code class="literal">password</code>
38
                  </span></dt><dd><p>Das Passwort für den Datenbankbenutzer</p></dd></dl></div><p>Die Datenbank muss noch nicht existieren. kivitendo kann sie
39
        automatisch anlegen (mehr dazu siehe unten).</p></div><div class="sect2" title="2.8.4. Passwortüberprüfung"><div class="titlepage"><div><div><h3 class="title"><a name="Passwort%C3%BCberpr%C3%BCfung"></a>2.8.4. Passwortüberprüfung</h3></div></div></div><p>kivitendo unterstützt Passwortüberprüfung auf zwei Arten: gegen
40
        die Authentifizierungsdatenbank und gegen externe LDAP- oder
41
        Active-Directory-Server. Welche davon benutzt wird, regelt der
42
        Parameter <code class="varname">module</code> im Abschnitt
43
        <code class="varname">[authentication]</code>.</p><p>Dieser Parameter listet die zu verwendenden Authentifizierungsmodule auf. Es muss mindestens ein Modul angegeben werden, es
44
        können aber auch mehrere angegeben werden. Weiterhin ist es möglich, das LDAP-Modul mehrfach zu verwenden und für jede Verwendung
45
        eine unterschiedliche Konfiguration zu nutzen, z.B. um einen Fallback-Server anzugeben, der benutzt wird, sofern der Hauptserver
46
        nicht erreichbar ist.</p><p>Sollen die Benutzerpasswörter in der Authentifizierungsdatenbank geprüft werden, so muss der Parameter
47
        <code class="varname">module</code> das Modul <code class="literal">DB</code> enthalten. Sofern das Modul in der Liste enthalten ist, egal an welcher
48
        Position, können sowohl der Administrator als auch die Benutzer selber ihre Passwörter in kivitendo ändern.</p><p>Wenn Passwörter gegen einen oder mehrere externe LDAP- oder Active-Directory-Server geprüft werden, so muss der Parameter
49
        <code class="varname">module</code> den Wert <code class="literal">LDAP</code> enthalten. In diesem Fall müssen zusätzliche Informationen über den
50
        LDAP-Server im Abschnitt <code class="literal">[authentication/ldap]</code> angegeben werden. Das Modul kann auch mehrfach angegeben werden,
51
        wobei jedes Modul eine eigene Konfiguration bekommen sollte. Der Name der Konfiguration wird dabei mit einem Doppelpunkt getrennt an
52
        den Modulnamen angehängt (<code class="literal">LDAP:Name-der-Konfiguration</code>). Der entsprechende Abschnitt in der Konfigurationsdatei
53
        lautet dann <code class="literal">[authentication/Name-der-Konfiguration]</code>.</p><p>Die verfügbaren Parameter für die LDAP-Konfiguration lauten:</p><div class="variablelist"><dl><dt><span class="term">
54
                     <code class="literal">host</code>
55
                  </span></dt><dd><p>Der Rechnername oder die IP-Adresse des LDAP- oder
56
              Active-Directory-Servers. Diese Angabe ist zwingend
57
              erforderlich.</p></dd><dt><span class="term">
58
                     <code class="literal">port</code>
59
                  </span></dt><dd><p>Die Portnummer des LDAP-Servers; meist 389.</p></dd><dt><span class="term">
60
                     <code class="literal">tls</code>
61
                  </span></dt><dd><p>Wenn Verbindungsverschlüsselung gewünscht ist, so diesen
62
              Wert auf ‘<code class="literal">1</code>’ setzen, andernfalls auf
63
              ‘<code class="literal">0</code>’ belassen</p></dd><dt><span class="term">
64
                     <code class="literal">verify</code>
65
                  </span></dt><dd><p>Wenn Verbindungsverschlüsselung gewünscht und der Parameter <em class="parameter"><code>tls</code></em> gesetzt ist, so gibt dieser
66
              Parameter an, ob das Serverzertifikat auf Gültigkeit geprüft wird. Mögliche Werte sind <code class="literal">require</code> (Zertifikat
67
              wird überprüft und muss gültig sei; dies ist der Standard) und <code class="literal">none</code> (Zertifikat wird nicht
68
              überpfüft).</p></dd><dt><span class="term">
69
                     <code class="literal">attribute</code>
70
                  </span></dt><dd><p>Das LDAP-Attribut, in dem der Benutzername steht, den der
71
              Benutzer eingegeben hat. Für Active-Directory-Server ist dies
72
              meist ‘<code class="literal">sAMAccountName</code>’, für andere
73
              LDAP-Server hingegen ‘<code class="literal">uid</code>’. Diese Angabe ist
74
              zwingend erforderlich.</p></dd><dt><span class="term">
75
                     <code class="literal">base_dn</code>
76
                  </span></dt><dd><p>Der Abschnitt des LDAP-Baumes, der durchsucht werden soll.
77
              Diese Angabe ist zwingend erforderlich.</p></dd><dt><span class="term">
78
                     <code class="literal">filter</code>
79
                  </span></dt><dd><p>Ein optionaler LDAP-Filter. Enthält dieser Filter das Wort
80
              <code class="literal">&lt;%login%&gt;</code>, so wird dieses durch den vom
81
              Benutzer eingegebenen Benutzernamen ersetzt. Andernfalls wird
82
              der LDAP-Baum nach einem Element durchsucht, bei dem das oben
83
              angegebene Attribut mit dem Benutzernamen identisch ist.</p></dd><dt><span class="term">
84
                     <code class="literal">bind_dn</code> und
85
            <code class="literal">bind_password</code>
86
                  </span></dt><dd><p>Wenn der LDAP-Server eine Anmeldung erfordert, bevor er
87
              durchsucht werden kann (z.B. ist dies bei
88
              Active-Directory-Servern der Fall), so kann diese hier angegeben
89
              werden. Für Active-Directory-Server kann als
90
              ‘<code class="literal">bind_dn</code>’ entweder eine komplette LDAP-DN wie
91
              z.B. ‘<code class="literal">cn=Martin
92
              Mustermann,cn=Users,dc=firmendomain</code>’ auch nur der
93
              volle Name des Benutzers eingegeben werden; in diesem Beispiel
94
              also ‘<code class="literal">Martin Mustermann</code>’.</p></dd><dt><span class="term">
95
                     <code class="literal">timeout</code>
96
                  </span></dt><dd><p>Timeout beim Verbindungsversuch, bevor der Server als nicht erreichbar gilt; Standardwert: 10</p></dd></dl></div></div><div class="sect2" title="2.8.5. Name des Session-Cookies"><div class="titlepage"><div><div><h3 class="title"><a name="Name-des-Session-Cookies"></a>2.8.5. Name des Session-Cookies</h3></div></div></div><p>Sollen auf einem Server mehrere kivitendo-Installationen
97
        aufgesetzt werden, so müssen die Namen der Session-Cookies für alle
98
        Installationen unterschiedlich sein. Der Name des Cookies wird mit dem
99
        Parameter <code class="varname">cookie_name</code> im Abschnitt
100
        <code class="varname">[authentication]</code>gesetzt.</p><p>Diese Angabe ist optional, wenn nur eine Installation auf dem
101
        Server existiert.</p></div><div class="sect2" title="2.8.6. Anlegen der Authentifizierungsdatenbank"><div class="titlepage"><div><div><h3 class="title"><a name="Anlegen-der-Authentifizierungsdatenbank"></a>2.8.6. Anlegen der Authentifizierungsdatenbank</h3></div></div></div><p>Nachdem alle Einstellungen in
102
        <code class="filename">config/kivitendo.conf</code> vorgenommen wurden, muss
103
        kivitendo die Authentifizierungsdatenbank anlegen. Dieses geschieht
104
        automatisch, wenn Sie sich im Administrationsmodul anmelden, das unter
105
        der folgenden URL erreichbar sein sollte:</p><p>
106
               <a class="ulink" href="http://localhost/kivitendo-erp/controller.pl?action=Admin/login" target="_top">http://localhost/kivitendo-erp/controller.pl?action=Admin/login</a>
107
            </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02s07.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="ch02s09.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">2.7. Der Task-Server&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.9. Mandanten-, Benutzer- und Gruppenverwaltung</td></tr></table></div></body></html>
3
   <title>2.8. Der Task-Server</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 3.8.0: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch02.html" title="Kapitel 2. Installation und Grundkonfiguration"><link rel="prev" href="ch02s07.html" title="2.7. Webserver-Konfiguration"><link rel="next" href="ch02s09.html" title="2.9. Benutzerauthentifizierung und Administratorpasswort"></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.8. Der Task-Server</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s07.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="ch02s09.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="2.8. Der Task-Server"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="config.task-server"></a>2.8. Der Task-Server</h2></div></div></div><p>Der Task-Server ist ein Prozess, der im Hintergrund läuft, in
4
      regelmäßigen Abständen nach abzuarbeitenden Aufgaben sucht und diese zu
5
      festgelegten Zeitpunkten abarbeitet (ähnlich wie Cron). Dieser Prozess
6
      wird u.a. für die Erzeugung der wiederkehrenden Rechnungen und weitere
7
      essenzielle Aufgaben benutzt.</p><p>Der Task-Server muss einmalig global in der Konfigurationsdatei
8
      konfiguriert werden. Danach wird er für jeden Mandanten, für den er
9
      laufen soll, in der Adminsitrationsmaske eingeschaltet.</p><p>Beachten Sie, dass der Task-Server in den Boot-Vorgang Ihres
10
      Servers integriert werden muss, damit er automatisch gestartet wird.
11
      Dies kann kivitendo nicht für Sie erledigen.</p><p>Da der Task-Server als Perlscript läuft, wird Arbeitsspeicher, der
12
      einmal benötigt wurde, nicht mehr an das Betriebssystem zurückgegeben,
13
      solange der Task-Server läuft. Dies kann dazu führen, dass ein länger
14
      laufender Task-Server mit der Zeit immer mehr Arbeitsspeicher für sich
15
      beansprucht. Es ist deshalb sinnvoll, dass der Task-Server in
16
      regelmässigen Abständen neu gestartet wird. Allerdings berücksichtigt der
17
      Task-Server ein Memory-Limit, wenn dieses in der Konfigurationsdatei
18
      angegeben ist. Bei Überschreiten dieses Limits beendet sich der
19
      Task-Server. Sofern der Task-Server als systemd-Service mit dem
20
      mitgelieferten Skript eingerichtet wurde, startet dieser danach
21
      automatisch erneut.</p><div class="sect2" title="2.8.1. Verfügbare und notwendige Konfigurationsoptionen"><div class="titlepage"><div><div><h3 class="title"><a name="Konfiguration-des-Task-Servers"></a>2.8.1. Verfügbare und notwendige Konfigurationsoptionen</h3></div></div></div><p>Die Konfiguration erfolgt über den Abschnitt
22
        <code class="literal">[task_server]</code> in der Datei
23
        <code class="filename">config/kivitendo.conf</code>. Die dort verfügbaren
24
        Optionen sind:</p><div class="variablelist"><dl><dt><span class="term">
25
                     <code class="varname">run_as</code>
26
                  </span></dt><dd><p>Wird der Server vom Systembenutzer <code class="literal">root</code>
27
              gestartet, so wechselt er auf den mit <code class="literal">run_as</code>
28
              angegebenen Systembenutzer. Der Systembenutzer muss dieselben
29
              Lese- und Schreibrechte haben, wie auch der Webserverbenutzer
30
              (siehe see <a class="xref" href="ch02s04.html" title="2.4. Manuelle Installation des Programmpaketes">Manuelle Installation des Programmpaketes</a>). Daher
31
              ist es erforderlich, hier denselben Systembenutzer einzutragen,
32
              unter dem auch der Webserver läuft.</p></dd><dt><span class="term">
33
                     <code class="varname">debug</code>
34
                  </span></dt><dd><p>Schaltet Debug-Informationen an und aus.</p></dd></dl></div></div><div class="sect2" title="2.8.2. Konfiguration der Mandanten für den Task-Server"><div class="titlepage"><div><div><h3 class="title"><a name="Konfiguration-der-Mandanten-fuer-den-Task-Servers"></a>2.8.2. Konfiguration der Mandanten für den Task-Server</h3></div></div></div><p>Ist der Task-Server grundlegend konfiguriert, so muss
35
        anschließend jeder Mandant, für den der Task-Server laufen soll,
36
        einmalig konfiguriert werden. Dazu kann in der Maske zum Bearbeiten
37
        von Mandanten im Administrationsbereich eine kivitendo-Benutzerkennung
38
        ausgewählt werden, unter der der Task-Server seine Arbeit
39
        verrichtet.</p><p>Ist in dieser Einstellung keine Benutzerkennung ausgewählt, so
40
        wird der Task-Server für diesen Mandanten keine Aufgaben
41
        ausführen.</p></div><div class="sect2" title="2.8.3. Automatisches Starten des Task-Servers beim Booten"><div class="titlepage"><div><div><h3 class="title"><a name="Einbinden-in-den-Boot-Prozess"></a>2.8.3. Automatisches Starten des Task-Servers beim Booten</h3></div></div></div><p>Der Task-Server verhält sich von seinen Optionen her wie ein
42
        reguläres SystemV-kompatibles Boot-Script. Außerdem wechselt er beim
43
        Starten automatisch in das kivitendo-Installationsverzeichnis.</p><p>Deshalb ist es möglich, ihn durch Setzen eines symbolischen
44
        Links aus einem der Runlevel-Verzeichnisse heraus in den Boot-Prozess
45
        einzubinden. Da das bei neueren Linux-Distributionen aber nicht
46
        zwangsläufig funktioniert, werden auch Start-Scripte mitgeliefert, die
47
        anstelle eines symbolischen Links verwendet werden können.</p><div class="sect3" title="2.8.3.1. SystemV-basierende Systeme (z.B. ältere Debian, ältere openSUSE, ältere Fedora)"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1470"></a>2.8.3.1. SystemV-basierende Systeme (z.B. ältere Debian, ältere
48
          openSUSE, ältere Fedora)</h4></div></div></div><p>Kopieren Sie die Datei
49
          <code class="filename">scripts/boot/system-v/kivitendo-task-server</code>
50
          nach <code class="filename">/etc/init.d/kivitendo-task-server</code>. Passen
51
          Sie in der kopierten Datei den Pfad zum Task-Server an (Zeile
52
          <code class="literal">DAEMON=....</code>). Binden Sie das Script in den
53
          Boot-Prozess ein. Dies ist distributionsabhängig:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Debian-basierende Systeme:</p><pre class="programlisting">update-rc.d kivitendo-task-server defaults
54
insserv kivitendo-task-server</pre></li><li class="listitem"><p>Ältere openSUSE und ältere Fedora:</p><pre class="programlisting">chkconfig --add kivitendo-task-server</pre></li></ul></div><p>Danach kann der Task-Server mit dem folgenden Befehl gestartet
55
          werden:</p><pre class="programlisting">/etc/init.d/kivitendo-task-server start</pre></div><div class="sect3" title="2.8.3.2. Upstart-basierende Systeme (z.B. Ubuntu bis 14.04)"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1499"></a>2.8.3.2. Upstart-basierende Systeme (z.B. Ubuntu bis 14.04)</h4></div></div></div><p>Kopieren Sie die Datei
56
          <code class="filename">scripts/boot/upstart/kivitendo-task-server.conf</code>
57
          nach <code class="filename">/etc/init/kivitendo-task-server.conf</code>.
58
          Passen Sie in der kopierten Datei den Pfad zum Task-Server an (Zeile
59
          <code class="literal">exec ....</code>).</p><p>Danach kann der Task-Server mit dem folgenden Befehl gestartet
60
          werden:</p><pre class="programlisting">service kivitendo-task-server start</pre></div><div class="sect3" title="2.8.3.3. systemd-basierende Systeme (z.B. neure openSUSE, neuere Fedora, neuere Ubuntu und neuere Debians)"><div class="titlepage"><div><div><h4 class="title"><a name="d0e1517"></a>2.8.3.3. systemd-basierende Systeme (z.B. neure openSUSE, neuere
61
          Fedora, neuere Ubuntu und neuere Debians)</h4></div></div></div><p>Kopieren Sie die Datei
62
          <code class="filename">scripts/boot/systemd/kivitendo-task-server.service</code>
63
          nach <code class="filename">/etc/systemd/system/</code>. Passen Sie in der
64
          kopierten Datei den Pfad zum Task-Server an (Zeilen
65
          <code class="literal">ExecStart=....</code> und
66
          <code class="literal">ExecStop=...</code>).</p><p>Machen Sie anschließend das Script systemd bekannt, und binden
67
          Sie es in den Boot-Prozess ein. Dazu führen Sie die folgenden Befehl
68
          aus:</p><pre class="programlisting">systemctl daemon-reload
69
systemctl enable kivitendo-task-server.service</pre><p>Wenn Sie den Task-Server jetzt sofort starten möchten, anstatt
70
          den Server neu zu starten, so können Sie das mit dem folgenden
71
          Befehl tun:</p><pre class="programlisting">systemctl start kivitendo-task-server.service</pre><p>Ein so eingerichteter Task-Server startet nach Beendigung
72
          automatisch erneut. Das betrifft eine Beendigung über die Oberfläche,
73
          eine Beendingung über die Prozesskontrolle und eine Beendigung bei
74
          Überschreiten des Memory-Limits. Soll der Task-Server nicht erneut
75
          starten, so können Sie ihn mit folgendem Befehl stoppen:</p><pre class="programlisting">systemctl stop kivitendo-task-server.service</pre></div></div><div class="sect2" title="2.8.4. Wie der Task-Server gestartet und beendet wird"><div class="titlepage"><div><div><h3 class="title"><a name="Prozesskontrolle"></a>2.8.4. Wie der Task-Server gestartet und beendet wird</h3></div></div></div><p>Der Task-Server wird wie folgt kontrolliert:</p><pre class="programlisting">./scripts/task_server.pl Befehl</pre><p>
76
               <code class="literal">Befehl</code> ist dabei eine der folgenden
77
        Optionen:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
78
                     <code class="literal">start</code> startet eine neue Instanz des
79
            Task-Servers. Die Prozess-ID wird innerhalb des
80
            <code class="filename">users</code>-Verzeichnisses abgelegt.</p></li><li class="listitem"><p>
81
                     <code class="literal">stop</code> beendet einen laufenden
82
            Task-Server.</p></li><li class="listitem"><p>
83
                     <code class="literal">restart</code> beendet und startet ihn
84
            neu.</p></li><li class="listitem"><p>
85
                     <code class="literal">status</code> berichtet, ob der Task-Server
86
            läuft.</p></li></ul></div><p>Der Task-Server wechselt beim Starten automatisch in das
87
        kivitendo-Installationsverzeichnis.</p><p>Dieselben Optionen können auch für die SystemV-basierenden
88
        Runlevel-Scripte benutzt werden (siehe oben).</p><p>Wurde der Task-Server als systemd-Service eingerichtet (s.o.),
89
        so startet dieser nach Beendigung automatisch erneut.</p></div><div class="sect2" title="2.8.5. Exemplarische Konfiguration eines Hintergrund-Jobs, der die Jahreszahl in allen Nummernkreisen zum Jahreswechsel erhöht"><div class="titlepage"><div><div><h3 class="title"><a name="Tasks-konfigurieren"></a>2.8.5. Exemplarische Konfiguration eines Hintergrund-Jobs, der die Jahreszahl in allen Nummernkreisen zum Jahreswechsel erhöht</h3></div></div></div><p>Hintergrund-Jobs werden über System -&gt; Hintergrund-Jobs und Task-Server -&gt; Aktuelle Hintergrund-Jobs anzeigen -&gt; Aktions-Knopf 'erfassen' angelegt. </p><p>Nachdem wir über das Menü dort angelangt sind, legen wir unseren exemplarischen Hintergrund-Jobs "Erhöhung der Nummernkreise" mit folgenden Werten an:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
90
                     <code class="literal">Aktiv:</code> Hier ein 'Ja' auswählen</p></li><li class="listitem"><p>
91
                     <code class="literal">Ausführungsart:</code> 'wiederholte Ausführung' auswählen</p></li><li class="listitem"><p>
92
                     <code class="literal">Paketname:</code> 'SetNumberRange' auswählen</p></li><li class="listitem"><p>
93
                     <code class="literal">Ausführungszeitplan:</code> Hier entsprechend Werte wie in der crontab eingeben.</p><p>Syntax:</p><pre class="programlisting">* * * * *
94
┬ ┬ ┬ ┬ ┬
95
│ │ │ │ │
96
│ │ │ │ └──── Wochentag (0-7, Sonntag ist 0 oder 7)
97
│ │ │ └────── Monat (1-12)
98
│ │ └──────── Tag (1-31)
99
│ └────────── Stunde (0-23)
100
└──────────── Minute (0-59)  </pre><p>Die Sterne können folgende Werte haben:</p><pre class="programlisting">
101
1 2 3 4 5
102

  
103
1 = Minute (0-59)
104
2 = Stunde (0-23)
105
3 = Tag (0-31)
106
4 = Monat (1-12)
107
5 = Wochentag (0-7, Sonntag ist 0 oder 7)
108
</pre><p>Um die Ausführung auf eine Minute vor Sylvester zu setzen, müssen die folgenden Werte eingetragen werden:</p><pre class="programlisting">59 23 31 12 *</pre></li><li class="listitem"><p>
109
                     <code class="literal">Daten:</code>In diesem Feld können optionale Parameter für den Hintergrund im JSON-Format gesetzt werden. Der Hintergrund-Job <code class="literal">SetNumberRange</code> akzeptiert zwei Variable nämlich <code class="literal">digit_year</code> sowieso <code class="literal">multiplier</code>.</p><p> 
110
                     <code class="literal">digit_year</code> kann zwei Werte haben entweder 2 oder 4, darüber wird gesteuert ob die Jahreszahl zwei oder vierstellig kodiert wird (für 2019, dann entweder 19 oder 2019). Der Standardwert ist vierstellig.</p><p> 
111
                     <code class="literal">multiplier</code> ist ein Vielfaches von 10, darüber wird die erste Nummer im Nummernkreis (die Anzahl der Stellen) wie folgt bestimmt:</p><pre class="programlisting">
112
multiplier     Nummernkreis 2020
113
10        -&gt;   20200
114
100       -&gt;   202000
115
1000      -&gt;   2020000
116
</pre><p>Wir gehen jetzt beispielhaft von einer letzten Rechnungsnummer von RE2019456 aus. Demnach sollte ab Januar 2020 die erste Nummer RE2020001 sein. Da der Task auch Präfixe berücksichtigt, kann dies mit folgenden JSON-kodierten Werten umgesetzt werden:</p><p>
117
                     <code class="literal">Daten:</code>
118
                  </p><pre class="programlisting">multiplier: 100
119
digits_year: 4</pre></li></ul></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02s07.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="ch02s09.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">2.7. Webserver-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.9. Benutzerauthentifizierung und Administratorpasswort</td></tr></table></div></body></html>
doc/html/ch02s09.html
1 1
<html><head>
2 2
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
3
   <title>2.9. Mandanten-, Benutzer- und Gruppenverwaltung</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 3.8.0: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch02.html" title="Kapitel 2. Installation und Grundkonfiguration"><link rel="prev" href="ch02s08.html" title="2.8. Benutzerauthentifizierung und Administratorpasswort"><link rel="next" href="ch02s10.html" title="2.10. Drucker- und Systemverwaltung"></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.9. Mandanten-, Benutzer- und Gruppenverwaltung</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s08.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="ch02s10.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="2.9. Mandanten-, Benutzer- und Gruppenverwaltung"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Benutzer--und-Gruppenverwaltung"></a>2.9. Mandanten-, Benutzer- und Gruppenverwaltung</h2></div></div></div><p>Nach der Installation müssen Mandanten, Benutzer, Gruppen und
4
      Datenbanken angelegt werden. Dieses geschieht im Administrationsmenü,
5
      das Sie unter folgender URL finden:</p><p>
6
            <a class="ulink" href="http://localhost/kivitendo-erp/controller.pl?action=Admin/login" target="_top">http://localhost/kivitendo-erp/controller.pl?action=Admin/login</a>
7
         </p><p>Verwenden Sie zur Anmeldung das Passwort, das Sie in der Datei
8
      <code class="filename">config/kivitendo.conf</code> eingetragen haben.</p><div class="sect2" title="2.9.1. Zusammenhänge"><div class="titlepage"><div><div><h3 class="title"><a name="Zusammenh%C3%A4nge"></a>2.9.1. Zusammenhänge</h3></div></div></div><p>kivitendo verwaltet zwei Sets von Daten, die je nach Einrichtung
9
        in einer oder zwei Datenbanken gespeichert werden.</p><p>Das erste Set besteht aus Anmeldeinformationen: welche Benutzer
10
        und Mandanten gibt es, welche Gruppen, welche BenutzerIn hat Zugriff
11
        auf welche Mandanten, und welche Gruppe verfügt über welche Rechte.
12
        Diese Informationen werden in der Authentifizierungsdatenbank
13
        gespeichert. Dies ist diejenige Datenbank, deren Verbindungsparameter
14
        in der Konfigurationsdatei <code class="filename">config/kivitendo.conf</code>
15
        gespeichert werden.</p><p>Das zweite Set besteht aus den eigentlichen Verkehrsdaten eines
16
        Mandanten, wie beispielsweise die Stammdaten (Kunden, Lieferanten,
17
        Waren) und Belege (Angebote, Lieferscheine, Rechnungen). Diese werden
18
        in einer Mandantendatenbank gespeichert. Die Verbindungsinformationen
19
        einer solchen Mandantendatenbank werden im Administrationsbereich
20
        konfiguriert, indem man einen Mandanten anlegt und dort die Parameter
21
        einträgt. Dabei hat jeder Mandant eine eigene Datenbank.</p><p>Aufgrund des Datenbankdesigns ist es für einfache Fälle möglich,
22
        die Authentifizierungsdatenbank und eine der Mandantendatenbanken in
23
        ein und derselben Datenbank zu speichern. Arbeitet man hingegen mit
24
        mehr als einem Mandanten, wird empfohlen, für die
25
        Authentifizierungsdatenbank eine eigene Datenbank zu verwenden, die
26
        nicht gleichzeitig für einen Mandanten verwendet wird.</p></div><div class="sect2" title="2.9.2. Mandanten, Benutzer und Gruppen"><div class="titlepage"><div><div><h3 class="title"><a name="Mandanten-Benutzer-Gruppen"></a>2.9.2. Mandanten, Benutzer und Gruppen</h3></div></div></div><p>kivitendos Administration kennt Mandanten, Benutzer und Gruppen,
27
        die sich frei zueinander zuordnen lassen.</p><p>kivitendo kann mehrere Mandaten aus einer Installation heraus
28
        verwalten. Welcher Mandant benutzt wird, kann direkt beim Login
29
        ausgewählt werden. Für jeden Mandanten wird ein eindeutiger Name
30
        vergeben, der beim Login angezeigt wird. Weiterhin benötigt der
31
        Mandant Datenbankverbindungsparameter für seine Mandantendatenbank.
32
        Diese sollte über die <a class="link" href="ch02s09.html#Datenbanken-anlegen" title="2.9.3. Datenbanken anlegen">Datenbankverwaltung</a>
33
        geschehen.</p><p>Ein Benutzer ist eine Person, die Zugriff auf kivitendo erhalten
34
        soll. Sie erhält einen Loginnamen sowie ein Passwort. Weiterhin legt
35
        der Administrator fest, an welchen Mandanten sich ein Benutzer
36
        anmelden kann, was beim Login verifiziert wird.</p><p>Gruppen dienen dazu, Benutzern innerhalb eines Mandanten Zugriff
37
        auf bestimmte Funktionen zu geben. Einer Gruppe werden dafür vom
38
        Administrator gewisse Rechte zugeordnet. Weiterhin legt der
39
        Administrator fest, für welche Mandanten eine Gruppe gilt, und welche
40
        Benutzer Mitglieder in dieser Gruppe sind. Meldet sich ein Benutzer
41
        dann an einem Mandanten an, so erhält er alle Rechte von allen
42
        denjenigen Gruppen, die zum Einen dem Mandanten zugeordnet sind und in
43
        denen der Benutzer zum Anderen Mitglied ist,</p><p>Die Reihenfolge, in der Datenbanken, Mandanten, Gruppen und
44
        Benutzer angelegt werden, kann im Prinzip beliebig gewählt werden. Die
45
        folgende Reihenfolge beinhaltet die wenigsten Arbeitsschritte:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Datenbank anlegen</p></li><li class="listitem"><p>Gruppen anlegen</p></li><li class="listitem"><p>Benutzer anlegen und Gruppen als Mitglied zuordnen</p></li><li class="listitem"><p>Mandanten anlegen und Gruppen sowie Benutzer zuweisen</p></li></ol></div></div><div class="sect2" title="2.9.3. Datenbanken anlegen"><div class="titlepage"><div><div><h3 class="title"><a name="Datenbanken-anlegen"></a>2.9.3. Datenbanken anlegen</h3></div></div></div><p>Zuerst muss eine Datenbank angelegt werden. Verwenden Sie für
46
        den Datenbankzugriff den vorhin angelegten Benutzer (in unseren
47
        Beispielen ist dies ‘<code class="literal">kivitendo</code>’).</p></div><div class="sect2" title="2.9.4. Gruppen anlegen"><div class="titlepage"><div><div><h3 class="title"><a name="Gruppen-anlegen"></a>2.9.4. Gruppen anlegen</h3></div></div></div><p>Eine Gruppe wird in der Gruppenverwaltung angelegt. Ihr muss ein
48
        Name gegeben werden, eine Beschreibung ist hingegen optional. Nach dem
49
        Anlegen können Sie die verschiedenen Bereiche wählen, auf die
50
        Mitglieder dieser Gruppe Zugriff haben sollen.</p><p>Benutzergruppen werden zwar in der Authentifizierungsdatenbank
51
        gespeichert, gelten aber nicht automatisch für alle Mandanten. Der
52
        Administrator legt vielmehr fest, für welche Mandanten eine Gruppe
53
        gültig ist. Dies kann entweder beim Bearbeiten der Gruppe geschehen
54
        ("diese Gruppe ist gültig für Mandanten X, Y und Z"), oder aber wenn
55
        man einen Mandanten bearbeitet ("für diesen Mandanten sind die Gruppen
56
        A, B und C gültig").</p><p>Wurden bereits Benutzer angelegt, so können hier die Mitglieder
57
        dieser Gruppe festgelegt werden ("in dieser Gruppe sind die Benutzer
58
        X, Y und Z Mitglieder"). Dies kann auch nachträglich beim Bearbeiten
59
        eines Benutzers geschehen ("dieser Benutzer ist Mitglied in den
60
        Gruppen A, B und C").</p></div><div class="sect2" title="2.9.5. Benutzer anlegen"><div class="titlepage"><div><div><h3 class="title"><a name="Benutzer-anlegen"></a>2.9.5. Benutzer anlegen</h3></div></div></div><p>Beim Anlegen von Benutzern werden für viele Parameter
61
        Standardeinstellungen vorgenommen, die den Gepflogenheiten des
62
        deutschen Raumes entsprechen.</p><p>Zwingend anzugeben ist der Loginname. Wenn die
63
        Passwortauthentifizierung über die Datenbank eingestellt ist, so kann
64
        hier auch das Benutzerpasswort gesetzt bzw. geändert werden. Ist
65
        hingegen die LDAP-Authentifizierung aktiv, so ist das Passwort-Feld
66
        deaktiviert.</p><p>Hat man bereits Mandanten und Gruppen angelegt, so kann hier
67
        auch konfiguriert werden, auf welche Mandanten der Benutzer Zugriff
68
        hat bzw. in welchen Gruppen er Mitglied ist. Beide Zuweisungen können
69
        sowohl beim Benutzer vorgenommen werden ("dieser Benutzer hat Zugriff
70
        auf Mandanten X, Y, Z" bzw. "dieser Benutzer ist Mitglied in Gruppen
71
        X, Y und Z") als auch beim Mandanten ("auf diesen Mandanten haben
72
        Benutzer A, B und C Zugriff") bzw. bei der Gruppe ("in dieser Gruppe
73
        sind Benutzer A, B und C Mitglieder").</p></div><div class="sect2" title="2.9.6. Mandanten anlegen"><div class="titlepage"><div><div><h3 class="title"><a name="Mandanten-anlegen"></a>2.9.6. Mandanten anlegen</h3></div></div></div><p>Ein Mandant besteht aus Administrationssicht primär aus einem
74
        eindeutigen Namen. Weiterhin wird hier hinterlegt, welche Datenbank
75
        als Mandantendatenbank benutzt wird. Hier müssen die Zugriffsdaten
76
        einer der eben angelegten Datenbanken eingetragen werden.</p><p>Hat man bereits Benutzer und Gruppen angelegt, so kann hier auch
77
        konfiguriert werden, welche Benutzer Zugriff auf den Mandanten haben
78
        bzw. welche Gruppen für den Mandanten gültig sind. Beide Zuweisungen
79
        können sowohl beim Mandanten vorgenommen werden ("auf diesen Mandanten
80
        haben Benutzer X, Y und Z Zugriff" bzw. "für diesen Mandanten sind die
81
        Gruppen X, Y und Z gültig") als auch beim Benutzer ("dieser Benutzer
82
        hat Zugriff auf Mandanten A, B und C") bzw. bei der Gruppe ("diese
83
        Gruppe ist für Mandanten A, B und C gültig").</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02s08.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="ch02s10.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">2.8. Benutzerauthentifizierung und Administratorpasswort&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.10. Drucker- und Systemverwaltung</td></tr></table></div></body></html>
3
   <title>2.9. Benutzerauthentifizierung und Administratorpasswort</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 3.8.0: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch02.html" title="Kapitel 2. Installation und Grundkonfiguration"><link rel="prev" href="ch02s08.html" title="2.8. Der Task-Server"><link rel="next" href="ch02s10.html" title="2.10. Mandanten-, Benutzer- und Gruppenverwaltung"></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.9. Benutzerauthentifizierung und Administratorpasswort</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s08.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="ch02s10.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="2.9. Benutzerauthentifizierung und Administratorpasswort"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Benutzerauthentifizierung-und-Administratorpasswort"></a>2.9. Benutzerauthentifizierung und Administratorpasswort</h2></div></div></div><p>Informationen über die Einrichtung der Benutzerauthentifizierung,
4
      über die Verwaltung von Gruppen und weitere Einstellungen</p><div class="sect2" title="2.9.1. Grundlagen zur Benutzerauthentifizierung"><div class="titlepage"><div><div><h3 class="title"><a name="Grundlagen-zur-Benutzerauthentifizierung"></a>2.9.1. Grundlagen zur Benutzerauthentifizierung</h3></div></div></div><p>kivitendo verwaltet die Benutzerinformationen in einer
5
        Datenbank, die im folgenden “Authentifizierungsdatenbank” genannt
6
        wird. Für jeden Benutzer kann dort eine eigene Datenbank für die
7
        eigentlichen Finanzdaten hinterlegt sein. Diese beiden Datenbanken
8
        können, müssen aber nicht unterschiedlich sein.</p><p>Im einfachsten Fall gibt es für kivitendo nur eine einzige
9
        Datenbank, in der sowohl die Benutzerinformationen als auch die Daten
10
        abgelegt werden.</p><p>Zusätzlich ermöglicht es kivitendo, dass die Benutzerpasswörter gegen die Authentifizierungsdatenbank oder gegen einen oder
11
        mehrere LDAP-Server überprüft werden.</p><p>Welche Art der Passwortüberprüfung kivitendo benutzt und wie
12
        kivitendo die Authentifizierungsdatenbank erreichen kann, wird in der
13
        Konfigurationsdatei <code class="filename">config/kivitendo.conf</code>
14
        festgelegt. Diese muss bei der Installation und bei einem Upgrade von
15
        einer Version vor v2.6.0 angelegt werden. Eine
16
        Beispielkonfigurationsdatei
17
        <code class="filename">config/kivitendo.conf.default</code> existiert, die als
18
        Vorlage benutzt werden kann.</p></div><div class="sect2" title="2.9.2. Administratorpasswort"><div class="titlepage"><div><div><h3 class="title"><a name="Administratorpasswort"></a>2.9.2. Administratorpasswort</h3></div></div></div><p>Das Passwort, das zum Zugriff auf das Administrationsinterface
19
        von kivitendo benutzt wird, wird ebenfalls in dieser Datei
20
        gespeichert. Es kann auch nur dort und nicht mehr im
21
        Administrationsinterface selber geändert werden. Der Parameter dazu
22
        heißt <code class="varname">admin_password</code> im Abschnitt
23
        <code class="varname">[authentication]</code>.</p></div><div class="sect2" title="2.9.3. Authentifizierungsdatenbank"><div class="titlepage"><div><div><h3 class="title"><a name="Authentifizierungsdatenbank"></a>2.9.3. Authentifizierungsdatenbank</h3></div></div></div><p>Die Verbindung zur Authentifizierungsdatenbank wird mit den
24
        Parametern in <code class="varname">[authentication/database]</code>
25
        konfiguriert. Hier sind die folgenden Parameter anzugeben:</p><div class="variablelist"><dl><dt><span class="term">
26
                     <code class="literal">host</code>
27
                  </span></dt><dd><p>Der Rechnername oder die IP-Adresse des
28
              Datenbankservers</p></dd><dt><span class="term">
29
                     <code class="literal">port</code>
30
                  </span></dt><dd><p>Die Portnummer des Datenbankservers, meist 5432</p></dd><dt><span class="term">
31
                     <code class="literal">db</code>
32
                  </span></dt><dd><p>Der Name der Authentifizierungsdatenbank</p></dd><dt><span class="term">
33
                     <code class="literal">user</code>
34
                  </span></dt><dd><p>Der Benutzername, mit dem sich kivitendo beim
35
              Datenbankserver anmeldet (z.B.
36
              "<code class="literal">postgres</code>")</p></dd><dt><span class="term">
37
                     <code class="literal">password</code>
38
                  </span></dt><dd><p>Das Passwort für den Datenbankbenutzer</p></dd></dl></div><p>Die Datenbank muss noch nicht existieren. kivitendo kann sie
39
        automatisch anlegen (mehr dazu siehe unten).</p></div><div class="sect2" title="2.9.4. Passwortüberprüfung"><div class="titlepage"><div><div><h3 class="title"><a name="Passwort%C3%BCberpr%C3%BCfung"></a>2.9.4. Passwortüberprüfung</h3></div></div></div><p>kivitendo unterstützt Passwortüberprüfung auf zwei Arten: gegen
40
        die Authentifizierungsdatenbank und gegen externe LDAP- oder
41
        Active-Directory-Server. Welche davon benutzt wird, regelt der
42
        Parameter <code class="varname">module</code> im Abschnitt
43
        <code class="varname">[authentication]</code>.</p><p>Dieser Parameter listet die zu verwendenden Authentifizierungsmodule auf. Es muss mindestens ein Modul angegeben werden, es
44
        können aber auch mehrere angegeben werden. Weiterhin ist es möglich, das LDAP-Modul mehrfach zu verwenden und für jede Verwendung
45
        eine unterschiedliche Konfiguration zu nutzen, z.B. um einen Fallback-Server anzugeben, der benutzt wird, sofern der Hauptserver
46
        nicht erreichbar ist.</p><p>Sollen die Benutzerpasswörter in der Authentifizierungsdatenbank geprüft werden, so muss der Parameter
47
        <code class="varname">module</code> das Modul <code class="literal">DB</code> enthalten. Sofern das Modul in der Liste enthalten ist, egal an welcher
48
        Position, können sowohl der Administrator als auch die Benutzer selber ihre Passwörter in kivitendo ändern.</p><p>Wenn Passwörter gegen einen oder mehrere externe LDAP- oder Active-Directory-Server geprüft werden, so muss der Parameter
49
        <code class="varname">module</code> den Wert <code class="literal">LDAP</code> enthalten. In diesem Fall müssen zusätzliche Informationen über den
50
        LDAP-Server im Abschnitt <code class="literal">[authentication/ldap]</code> angegeben werden. Das Modul kann auch mehrfach angegeben werden,
51
        wobei jedes Modul eine eigene Konfiguration bekommen sollte. Der Name der Konfiguration wird dabei mit einem Doppelpunkt getrennt an
52
        den Modulnamen angehängt (<code class="literal">LDAP:Name-der-Konfiguration</code>). Der entsprechende Abschnitt in der Konfigurationsdatei
53
        lautet dann <code class="literal">[authentication/Name-der-Konfiguration]</code>.</p><p>Die verfügbaren Parameter für die LDAP-Konfiguration lauten:</p><div class="variablelist"><dl><dt><span class="term">
54
                     <code class="literal">host</code>
55
                  </span></dt><dd><p>Der Rechnername oder die IP-Adresse des LDAP- oder
56
              Active-Directory-Servers. Diese Angabe ist zwingend
57
              erforderlich.</p></dd><dt><span class="term">
58
                     <code class="literal">port</code>
59
                  </span></dt><dd><p>Die Portnummer des LDAP-Servers; meist 389.</p></dd><dt><span class="term">
60
                     <code class="literal">tls</code>
61
                  </span></dt><dd><p>Wenn Verbindungsverschlüsselung gewünscht ist, so diesen
62
              Wert auf ‘<code class="literal">1</code>’ setzen, andernfalls auf
63
              ‘<code class="literal">0</code>’ belassen</p></dd><dt><span class="term">
64
                     <code class="literal">verify</code>
65
                  </span></dt><dd><p>Wenn Verbindungsverschlüsselung gewünscht und der Parameter <em class="parameter"><code>tls</code></em> gesetzt ist, so gibt dieser
66
              Parameter an, ob das Serverzertifikat auf Gültigkeit geprüft wird. Mögliche Werte sind <code class="literal">require</code> (Zertifikat
67
              wird überprüft und muss gültig sei; dies ist der Standard) und <code class="literal">none</code> (Zertifikat wird nicht
68
              überpfüft).</p></dd><dt><span class="term">
69
                     <code class="literal">attribute</code>
70
                  </span></dt><dd><p>Das LDAP-Attribut, in dem der Benutzername steht, den der
71
              Benutzer eingegeben hat. Für Active-Directory-Server ist dies
72
              meist ‘<code class="literal">sAMAccountName</code>’, für andere
73
              LDAP-Server hingegen ‘<code class="literal">uid</code>’. Diese Angabe ist
74
              zwingend erforderlich.</p></dd><dt><span class="term">
75
                     <code class="literal">base_dn</code>
76
                  </span></dt><dd><p>Der Abschnitt des LDAP-Baumes, der durchsucht werden soll.
77
              Diese Angabe ist zwingend erforderlich.</p></dd><dt><span class="term">
78
                     <code class="literal">filter</code>
79
                  </span></dt><dd><p>Ein optionaler LDAP-Filter. Enthält dieser Filter das Wort
80
              <code class="literal">&lt;%login%&gt;</code>, so wird dieses durch den vom
81
              Benutzer eingegebenen Benutzernamen ersetzt. Andernfalls wird
82
              der LDAP-Baum nach einem Element durchsucht, bei dem das oben
83
              angegebene Attribut mit dem Benutzernamen identisch ist.</p></dd><dt><span class="term">
84
                     <code class="literal">bind_dn</code> und
85
            <code class="literal">bind_password</code>
86
                  </span></dt><dd><p>Wenn der LDAP-Server eine Anmeldung erfordert, bevor er
87
              durchsucht werden kann (z.B. ist dies bei
88
              Active-Directory-Servern der Fall), so kann diese hier angegeben
89
              werden. Für Active-Directory-Server kann als
90
              ‘<code class="literal">bind_dn</code>’ entweder eine komplette LDAP-DN wie
91
              z.B. ‘<code class="literal">cn=Martin
92
              Mustermann,cn=Users,dc=firmendomain</code>’ auch nur der
93
              volle Name des Benutzers eingegeben werden; in diesem Beispiel
94
              also ‘<code class="literal">Martin Mustermann</code>’.</p></dd><dt><span class="term">
95
                     <code class="literal">timeout</code>
96
                  </span></dt><dd><p>Timeout beim Verbindungsversuch, bevor der Server als nicht erreichbar gilt; Standardwert: 10</p></dd></dl></div></div><div class="sect2" title="2.9.5. Name des Session-Cookies"><div class="titlepage"><div><div><h3 class="title"><a name="Name-des-Session-Cookies"></a>2.9.5. Name des Session-Cookies</h3></div></div></div><p>Sollen auf einem Server mehrere kivitendo-Installationen
97
        aufgesetzt werden, so müssen die Namen der Session-Cookies für alle
98
        Installationen unterschiedlich sein. Der Name des Cookies wird mit dem
99
        Parameter <code class="varname">cookie_name</code> im Abschnitt
100
        <code class="varname">[authentication]</code>gesetzt.</p><p>Diese Angabe ist optional, wenn nur eine Installation auf dem
101
        Server existiert.</p></div><div class="sect2" title="2.9.6. Anlegen der Authentifizierungsdatenbank"><div class="titlepage"><div><div><h3 class="title"><a name="Anlegen-der-Authentifizierungsdatenbank"></a>2.9.6. Anlegen der Authentifizierungsdatenbank</h3></div></div></div><p>Nachdem alle Einstellungen in
102
        <code class="filename">config/kivitendo.conf</code> vorgenommen wurden, muss
103
        kivitendo die Authentifizierungsdatenbank anlegen. Dieses geschieht
104
        automatisch, wenn Sie sich im Administrationsmodul anmelden, das unter
105
        der folgenden URL erreichbar sein sollte:</p><p>
106
               <a class="ulink" href="http://localhost/kivitendo-erp/controller.pl?action=Admin/login" target="_top">http://localhost/kivitendo-erp/controller.pl?action=Admin/login</a>
107
            </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02s08.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="ch02s10.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">2.8. Der Task-Server&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.10. Mandanten-, Benutzer- und Gruppenverwaltung</td></tr></table></div></body></html>
doc/html/ch02s10.html
1 1
<html><head>
2 2
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
3
   <title>2.10. Drucker- und Systemverwaltung</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 3.8.0: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch02.html" title="Kapitel 2. Installation und Grundkonfiguration"><link rel="prev" href="ch02s09.html" title="2.9. Mandanten-, Benutzer- und Gruppenverwaltung"><link rel="next" href="ch02s11.html" title="2.11. E-Mail-Versand aus kivitendo heraus"></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.10. Drucker- und Systemverwaltung</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s09.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="ch02s11.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="2.10. Drucker- und Systemverwaltung"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Drucker--Systemverwaltung"></a>2.10. Drucker- und Systemverwaltung</h2></div></div></div><p>Im Administrationsmenü gibt es ferner noch die beiden Menüpunkte
4
      Druckeradministration und System.</p><div class="sect2" title="2.10.1. Druckeradministration"><div class="titlepage"><div><div><h3 class="title"><a name="Druckeradministration"></a>2.10.1. Druckeradministration</h3></div></div></div><p>Unter dem Menüpunkt Druckeradministration lassen sich beliebig
5
        viele "Druckbefehle" im System verwalten. Diese Befehle werden
6
        mandantenweise zugeordnet. Unter Druckerbeschreibung wird der Namen
7
        des Druckbefehls festgelegt, der dann in der Druckerauswahl des Belegs
8
        angezeigt wird.</p><p>Unter Druckbefehl definiert man den eigentlichen Druckbefehl,
9
        der direkt auf dem Webserver ausgeführt wird, bspw. 'lpr -P
10
        meinDrucker' oder ein kompletter Pfad zu einem Skript
11
        (/usr/local/src/kivitendo/scripts/pdf_druck_in_verzeichnis.sh). Wird
12
        ferner noch ein optionales Vorlagenkürzel verwendet, wird dieses
13
        Kürzel bei der Auswahl der Druckvorlagendatei mit einem Unterstrich
14
        ergänzt, ist bspw. das Kürzel 'epson_drucker' definiert, so wird beim
15
        Ausdruck eines Angebots folgende Vorlage geparst:
16
        sales_quotation_epson_drucker.tex.</p></div><div class="sect2" title="2.10.2. System sperren / entsperren"><div class="titlepage"><div><div><h3 class="title"><a name="System"></a>2.10.2. System sperren / entsperren</h3></div></div></div><p>Unter dem Menüpunkt System gibt es den Eintrag 'Installation
17
        sperren/entsperren'. Setzt man diese Sperre so ist der Zugang zu der
18
        gesamten kivitendo Installation gesperrt.</p><p>Falls die Sperre gesetzt ist, erscheint anstelle der
19
        Anmeldemaske die Information: 'kivitendo ist momentan zwecks
20
        Wartungsarbeiten nicht zugänglich.'.</p><p>Wichtig zu erwähnen ist hierbei noch, dass sich kivitendo
21
        automatisch 'sperrt', falls es bei einem Versionsupdate zu einem
22
        Datenbankfehler kam. Somit kann hier nicht aus Versehen mit einem
23
        inkonsistenten Datenbestand weitergearbeitet werden.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02s09.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="ch02s11.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">2.9. Mandanten-, Benutzer- und Gruppenverwaltung&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.11. E-Mail-Versand aus kivitendo heraus</td></tr></table></div></body></html>
3
   <title>2.10. Mandanten-, Benutzer- und Gruppenverwaltung</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 3.8.0: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch02.html" title="Kapitel 2. Installation und Grundkonfiguration"><link rel="prev" href="ch02s09.html" title="2.9. Benutzerauthentifizierung und Administratorpasswort"><link rel="next" href="ch02s11.html" title="2.11. Drucker- und Systemverwaltung"></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.10. Mandanten-, Benutzer- und Gruppenverwaltung</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s09.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="ch02s11.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="2.10. Mandanten-, Benutzer- und Gruppenverwaltung"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Benutzer--und-Gruppenverwaltung"></a>2.10. Mandanten-, Benutzer- und Gruppenverwaltung</h2></div></div></div><p>Nach der Installation müssen Mandanten, Benutzer, Gruppen und
4
      Datenbanken angelegt werden. Dieses geschieht im Administrationsmenü,
5
      das Sie unter folgender URL finden:</p><p>
6
            <a class="ulink" href="http://localhost/kivitendo-erp/controller.pl?action=Admin/login" target="_top">http://localhost/kivitendo-erp/controller.pl?action=Admin/login</a>
7
         </p><p>Verwenden Sie zur Anmeldung das Passwort, das Sie in der Datei
8
      <code class="filename">config/kivitendo.conf</code> eingetragen haben.</p><div class="sect2" title="2.10.1. Zusammenhänge"><div class="titlepage"><div><div><h3 class="title"><a name="Zusammenh%C3%A4nge"></a>2.10.1. Zusammenhänge</h3></div></div></div><p>kivitendo verwaltet zwei Sets von Daten, die je nach Einrichtung
9
        in einer oder zwei Datenbanken gespeichert werden.</p><p>Das erste Set besteht aus Anmeldeinformationen: welche Benutzer
10
        und Mandanten gibt es, welche Gruppen, welche BenutzerIn hat Zugriff
11
        auf welche Mandanten, und welche Gruppe verfügt über welche Rechte.
12
        Diese Informationen werden in der Authentifizierungsdatenbank
13
        gespeichert. Dies ist diejenige Datenbank, deren Verbindungsparameter
14
        in der Konfigurationsdatei <code class="filename">config/kivitendo.conf</code>
15
        gespeichert werden.</p><p>Das zweite Set besteht aus den eigentlichen Verkehrsdaten eines
16
        Mandanten, wie beispielsweise die Stammdaten (Kunden, Lieferanten,
17
        Waren) und Belege (Angebote, Lieferscheine, Rechnungen). Diese werden
18
        in einer Mandantendatenbank gespeichert. Die Verbindungsinformationen
19
        einer solchen Mandantendatenbank werden im Administrationsbereich
20
        konfiguriert, indem man einen Mandanten anlegt und dort die Parameter
21
        einträgt. Dabei hat jeder Mandant eine eigene Datenbank.</p><p>Aufgrund des Datenbankdesigns ist es für einfache Fälle möglich,
22
        die Authentifizierungsdatenbank und eine der Mandantendatenbanken in
23
        ein und derselben Datenbank zu speichern. Arbeitet man hingegen mit
24
        mehr als einem Mandanten, wird empfohlen, für die
25
        Authentifizierungsdatenbank eine eigene Datenbank zu verwenden, die
26
        nicht gleichzeitig für einen Mandanten verwendet wird.</p></div><div class="sect2" title="2.10.2. Mandanten, Benutzer und Gruppen"><div class="titlepage"><div><div><h3 class="title"><a name="Mandanten-Benutzer-Gruppen"></a>2.10.2. Mandanten, Benutzer und Gruppen</h3></div></div></div><p>kivitendos Administration kennt Mandanten, Benutzer und Gruppen,
27
        die sich frei zueinander zuordnen lassen.</p><p>kivitendo kann mehrere Mandaten aus einer Installation heraus
28
        verwalten. Welcher Mandant benutzt wird, kann direkt beim Login
29
        ausgewählt werden. Für jeden Mandanten wird ein eindeutiger Name
30
        vergeben, der beim Login angezeigt wird. Weiterhin benötigt der
... Dieser Diff wurde abgeschnitten, weil er die maximale Anzahl anzuzeigender Zeilen überschreitet.

Auch abrufbar als: Unified diff