Server-Schulung-Teil8-Weiter installieren von Kivitendo: Unterschied zwischen den Versionen

Aus revampedia
Zeile 6: Zeile 6:
 
'''The english version isn't finished yet, so a big mix of german and english'''
 
'''The english version isn't finished yet, so a big mix of german and english'''
  
This training session took place on 04-27-17.  
+
This training session took place on 04-27-17. Unfortunately we still weren't able to completely finish the installation of Kivitendo. The training session was extended to at least get a first mask of it. I hope the next session to Kivitendo will be the last one to be finally done with this installation.
 
<br />
 
<br />
  
Zeile 14: Zeile 14:
  
  
== Vorwort ==
+
== Install an additional locale ==
 
 
Diese Schulung hat am 27.04.17 stattgefunden. Leider haben wir es noch immer nicht geschafft die Installation von Kivitendo komplett abzuschliessen. Wir haben durch überziehen der Zeit am Schluss wenigstens eine erste Maske bekommen. Die hoffentlich endgültige Konfiguration wird also noch zu einem späteren Zeitpunkt folgen müssen.
 
 
 
<br />
 
<pre>
 
Falls noch Fragen offen sind nach dieser Anleitung bitte oben bei "Ansichten" auf "Diskussion" gehen und Feedback hinterlassen, dass ich noch weitere Details hinzufügen kann. jr
 
</pre>
 
  
== Locale nachträglich installieren ==
+
During our installation we realized that we're still lacking this. I'm adding this here at the start so we don't have to do some things twice. We're missing the Deutsch/Deutschland [https://de.wikipedia.org/wiki/Locale locale]. So far we've only installed the locale for Deutsch/Schweiz and it's unclear if it would work with that.<br>
 
+
To add this locale we're using the program "dpkg-reconfigure". This program also works with other packages that were installed with apt.<br/>
Während dem Verlauf haben wir festgestellt, dass uns noch was fehlt. Ich hole dies hier vor, dass gewisse Sachen nicht doppelt vorhanden sind. Uns fehlt noch [https://de.wikipedia.org/wiki/Locale Locale] von Deutsch/Deutschland. Bislang haben wir nur die Locale für Deutsch/Schweiz installiert und es ist unklar ob es damit funktionieren würde.<br>
 
Wir verwenden dazu das Program "dpkg-reconfigure". Dieses Program funktioniert auch mit anderen Packeten welche über apt installiert wurden.<br/>
 
  
 
  user1@vm1:/var/www/git/kivitendo-erp$ sudo dpkg-reconfigure locales
 
  user1@vm1:/var/www/git/kivitendo-erp$ sudo dpkg-reconfigure locales
 
<br/>
 
<br/>
Wir mussten über Leerschlag einen Punkt bei de_DE.UTF-8 UTF-8 hinzufügen. Falls man will kann man ebenfalls noch Punkte bei einer englischen, französischen oder italienischen Kodierung setzen, da die Schweiz ja mehrere Landessprachen hat.<br>
+
By pressing the spacebar we've added the dot at de_DE.UTF-8 UTF-8. If you'd also like to have an english, french or italian encoding, you can also set some dots there.<br>
 
<br/>
 
<br/>
  
== PostgreSQL konfigurieren ==
+
== Configure PostgreSQL ==
Falls man der [https://kivi.kivitendo.ch:23443/kivi/doc/kivitendo-Dokumentation.pdf Dokumentation] von Kivitendo folgt, so arbeiten wir aktuell unter dem Punk 2.5. Zuerst wechseln wir in unser Verzeichnis von git und überprüfen den Status:<br/>
+
What we're about to do is from chapter 2.5 of the [https://kivi.kivitendo.ch:23443/kivi/doc/kivitendo-Dokumentation.pdf documentation] of Kivitendo. First we change our directory of git and check the status:<br/>
  
 
  user1@vm1:~$ cd /var/www/git/kivitendo-erp/
 
  user1@vm1:~$ cd /var/www/git/kivitendo-erp/
Zeile 41: Zeile 32:
 
  nichts zu committen, Arbeitsverzeichnis unverändert
 
  nichts zu committen, Arbeitsverzeichnis unverändert
  
Um sicher zu gehen, dass noch alles ist wie wir es hinterlassen haben führen wir nochmals das Script aus:<br/>
+
To make sure that everything is the way we've left it, we execute the script once more:<br/>
 
  user1@vm1:/var/www/git/kivitendo-erp$ ./scripts/installation_check.pl  
 
  user1@vm1:/var/www/git/kivitendo-erp$ ./scripts/installation_check.pl  
  
Als erstes müssen wir zum Benutzer postgres wechseln. Da wir das Passwort für diesen Benutzer nicht kennen machen wir das mit dem folgenden Befehl:
+
First we need to change to the user postgres. As we don't know the password for that user, we do this with the following command:
  
 
  user1@vm1:/var/www/git/kivitendo-erp$ sudo su postgres
 
  user1@vm1:/var/www/git/kivitendo-erp$ sudo su postgres
  
Der nächste Befehl dient dazu herauszufinden welche Kodierung die Datenbanken haben. Unser echo Befehl wird durch die Pipe an den Befehl psql (PostgreSQL) weitergegeben. Beim Zeichen nach dem \ handelt es sich um ein kleines "L", falls es in einer Schriftart angezeigt wird wo "1" und "l" fast gleich aussehen.
+
With the next command we find out what encoding the databases have. Our echo command is redirected with the pipe to the command psql (PostgreSQL). The symbol after the \ is a lower case "L" if the font makes it hard to see a differnce between "1" and "l".
 
<pre>
 
<pre>
 
postgres@vm1:/var/www/git/kivitendo-erp$ echo '\l' | psql
 
postgres@vm1:/var/www/git/kivitendo-erp$ echo '\l' | psql
Zeile 62: Zeile 53:
 
</pre>
 
</pre>
  
Wir dürfen den Benutzer postgres wieder verlassen und mit dem normalen Benutzer weitermachen.
+
We no longer need to be the postgres user and can change back to our regular user.
  
 
  postgres@vm1:/var/www/git/kivitendo-erp$ exit
 
  postgres@vm1:/var/www/git/kivitendo-erp$ exit
  
=== Neuen Cluster erstellen ===
+
=== Create a new cluster ===
  
 
Wir wollen einen neuen Cluster mit de_DE erstellen, da unklar ist was bei de_CH passieren würde. Dazu haben wir ja vorher die de_DE Kodierung hinzugefügt.<br/>
 
Wir wollen einen neuen Cluster mit de_DE erstellen, da unklar ist was bei de_CH passieren würde. Dazu haben wir ja vorher die de_DE Kodierung hinzugefügt.<br/>
Zeile 222: Zeile 213:
  
 
== PostgreSQL konfigurieren ==
 
== PostgreSQL konfigurieren ==
Falls man der [https://kivi.kivitendo.ch:23443/kivi/doc/kivitendo-Dokumentation.pdf Dokumentation] von Kivitendo folgt, so arbeiten wir aktuell unter dem Punk 2.5. Zuerst wechseln wir in unser Verzeichnis von git und überprüfen den Status:<br/>
+
Falls man der [https://kivi.kivitendo.ch:23443/kivi/doc/kivitendo-Dokumentation.pdf Dokumentation] von Kivitendo folgt, so arbeiten wir aktuell unter dem Punkt 2.5. Zuerst wechseln wir in unser Verzeichnis von git und überprüfen den Status:<br/>
  
 
  user1@vm1:~$ cd /var/www/git/kivitendo-erp/
 
  user1@vm1:~$ cd /var/www/git/kivitendo-erp/

Version vom 2. Mai 2017, 11:00 Uhr

Vorwort

Diese Schulung hat am 27.04.17 stattgefunden. Leider haben wir es noch immer nicht geschafft die Installation von Kivitendo komplett abzuschliessen. Wir haben durch überziehen der Zeit am Schluss wenigstens eine erste Maske bekommen. Die hoffentlich endgültige Konfiguration wird also noch zu einem späteren Zeitpunkt folgen müssen.


Falls noch Fragen offen sind nach dieser Anleitung bitte oben bei "Ansichten" auf "Diskussion" gehen und Feedback hinterlassen, dass ich noch weitere Details hinzufügen kann. jr

Locale nachträglich installieren

Während dem Verlauf haben wir festgestellt, dass uns noch was fehlt. Ich hole dies hier vor, dass gewisse Sachen nicht doppelt vorhanden sind. Uns fehlt noch Locale von Deutsch/Deutschland. Bislang haben wir nur die Locale für Deutsch/Schweiz installiert und es ist unklar ob es damit funktionieren würde.
Wir verwenden dazu das Program "dpkg-reconfigure". Dieses Program funktioniert auch mit anderen Packeten welche über apt installiert wurden.

user1@vm1:/var/www/git/kivitendo-erp$ sudo dpkg-reconfigure locales


Wir mussten über Leerschlag einen Punkt bei de_DE.UTF-8 UTF-8 hinzufügen. Falls man will kann man ebenfalls noch Punkte bei einer englischen, französischen oder italienischen Kodierung setzen, da die Schweiz ja mehrere Landessprachen hat.

PostgreSQL konfigurieren

Falls man der Dokumentation von Kivitendo folgt, so arbeiten wir aktuell unter dem Punkt 2.5. Zuerst wechseln wir in unser Verzeichnis von git und überprüfen den Status:

user1@vm1:~$ cd /var/www/git/kivitendo-erp/
user1@vm1:/var/www/git/kivitendo-erp$ git status
Auf Branch produktiv
nichts zu committen, Arbeitsverzeichnis unverändert

Um sicher zu gehen, dass noch alles ist wie wir es hinterlassen haben führen wir nochmals das Script aus:

user1@vm1:/var/www/git/kivitendo-erp$ ./scripts/installation_check.pl 

Als erstes müssen wir zum Benutzer postgres wechseln. Da wir das Passwort für diesen Benutzer nicht kennen machen wir das mit dem folgenden Befehl:

user1@vm1:/var/www/git/kivitendo-erp$ sudo su postgres

Der nächste Befehl dient dazu herauszufinden welche Kodierung die Datenbanken haben. Unser echo Befehl wird durch die Pipe an den Befehl psql (PostgreSQL) weitergegeben. Beim Zeichen nach dem \ handelt es sich um ein kleines "L", falls es in einer Schriftart angezeigt wird wo "1" und "l" fast gleich aussehen.

postgres@vm1:/var/www/git/kivitendo-erp$ echo '\l' | psql
                                  Liste der Datenbanken
   Name    | Eigentümer | Kodierung | Sortierfolge | Zeichentyp |  Zugriffsprivilegien  
-----------+-------------+-----------+--------------+------------+-----------------------
 postgres  | postgres    | SQL_ASCII | C            | C          | 
 template0 | postgres    | SQL_ASCII | C            | C          | =c/postgres          +
           |             |           |              |            | postgres=CTc/postgres
 template1 | postgres    | SQL_ASCII | C            | C          | =c/postgres          +
           |             |           |              |            | postgres=CTc/postgres
(3 Zeilen)

Wir dürfen den Benutzer postgres wieder verlassen und mit dem normalen Benutzer weitermachen.

postgres@vm1:/var/www/git/kivitendo-erp$ exit

Neuen Cluster erstellen

Wir wollen einen neuen Cluster mit de_DE erstellen, da unklar ist was bei de_CH passieren würde. Dazu haben wir ja vorher die de_DE Kodierung hinzugefügt.

Man muss herausfinden welche Version von PostgreSQL wir im Einsatz haben. Dazu wechselt man den Ordner oder listet den Ordnerinhalt unter dem Pfad /etc/postgresql/"Versionsnummer" auf. In unserem Fall handelt es sich um die Version 9.4. Ich hatte bei der Namenswahl zuerst etwas mit "-" darin gewählt, dass ich später Probleme hatte. Das hier aufgezeigte ist die problemfreie Variante. Also vorsicht bei der Namenswahl vom neuen Cluster.

user1@vm1:/var/www/git/kivitendo-erp$ sudo pg_createcluster --locale=de_DE.UTF-8 --encoding=UTF-8 9.4 kivicluster
Creating new cluster 9.4/kivi-cluster ...
  config /etc/postgresql/9.4/kivi-cluster
  data   /var/lib/postgresql/9.4/kivi-cluster
  locale de_CH.UTF-8
Flags von /var/lib/postgresql/9.4/kivi-cluster wie folgt gesetzt: -------------e-C
  port   5433

Cluster konfigurieren

Im nächsten Schritt wechseln wir in den Konfigurationsordner des neu erstellten Clusters. Eine allgemeine Formulierung dazu ist

cd /etc/postgresql/9.4/"cluster name"/

In meinem Fall war es also

user1@vm1:/var/www/git/kivitendo-erp$ cd /etc/postgresql/9.4/kivicluster/

Zuerst schauen wir uns die erste Konfigurationsdatei mit dem Namen postgresql.conf an:

user1@vm1:/etc/postgresql/9.4/kivicluster$ sudo less postgresql.conf

Eine Zeile darin ist lautet

#listen_addresses = 'localhost' # defaults to 'localhost'; use '*' for all

Das # Zeichen sagt uns dass diese Zeile auskommentiert ist. Falls wir das # am Anfang wegnehmen würden, so wäre alles hinter dem zweiten # auskommentiert. Dort sagt es uns, dass es automatisch 'localhost' wählt, wenn es keinen anderen Parameter findet.
Falls man PostgreSQL auf einer anderen Maschine hat als Kivitendo, so muss man hier die IP Adresse dazu eintragen.

Wir müssen uns ebenfalls noch den Port merken, welcher verwendet wird. Der Standard-Port ist 5432, da wir einen neuen Cluster erstellt haben geht diese Nummer um 1 hoch, also haben wir 5433. Es gibt noch viele andere Konfigurationsmöglichkeiten in postgresql.conf, doch die müssen wir aktuell nicht ändern.

Die nächste Datei kann man sich wieder zuerst anschauen über

user1@vm1:/etc/postgresql/9.4/kivicluster$ sudo less pg_hba.conf 

Da wir jedoch diese Datei ändern mussen machen wir zuerst eine Kopie davon

user1@vm1:/etc/postgresql/9.4/kivicluster$ sudo cp -a pg_hba.conf pg_hba.conf_27-04-17

Und bearbeiten sie nun mit dem Programm nano

user1@vm1:/etc/postgresql/9.4/kivicluster$ sudo nano pg_hba.conf

Die Anpassungen müssen wir am Ende der Datei machen.

# "local" is for Unix domain socket connections only
local   all             kivitendo                                password
# IPv4 local connections:
#host    all             all             127.0.0.1/32            md5
host    all              kivitendo       127.0.0.1/32            password
# IPv6 local connections:
#host    all             all             ::1/128                 md5

Nach den Änderungen können wir den neuen Cluster in Betrieb nehmen. Dies machen wir über den folgenden Befehl:

user1@vm1:/etc/postgresql/9.4/kivi-cluster$ sudo systemctl start postgresql@9.4-kivicluster.service

Dass der Cluster beim nächsten Starten der Maschine automatisch aktiviert wird müssen wir noch eine kleine Änderung am letsten Befehl machen, dass er so aussieht:

user1@vm1:/etc/postgresql/9.4/kivicluster$ sudo systemctl enable postgresql@9.4-kivicluster.service

Wir müssen nochmals zum Benutzer postgres wechseln

user1@vm1:/etc/postgresql/9.4/kivicluster$ sudo su postgres

Und auf die Datenbank template1 zugreifen

postgres@vm1:/etc/postgresql/9.4/kivicluster$ psql -p 5433 template1
psql (9.4.10)
Geben Sie »help« für Hilfe ein.

template1=# 

Innerhalb der Datenbank müssen wir den folgenden Befehl eingeben:

template1=# CREATE EXTENSION IF NOT EXISTS plpgsql;
HINWEIS:  Erweiterung »plpgsql« existiert bereits, wird übersprungen
CREATE EXTENSION

Um die Datenbank wieder zu verlassen geben wir \q ein:

template1=# \q

Neuen Benutzer in PostgreSQL erstellen

Solange wir noch mit dem Benutzer postgres unterwegs sind müssen wir noch einen neuen Benutzer für PostgreSQL erstellen. Dies machen wir über

postgres@vm1:/etc/postgresql/9.4/kivicluster$ createuser -d -P kivitendo

Ich habe als Passwort für unseren Testserver kivitendo gewählt. Auf einem Live System sollte man ein komplexeres Passwort wählen. Man wird es in eine Konfigurationsdatei in Klartext eintragen müssen, doch sonst nicht oft nutzen.

Wir dürfen wieder zum normalen Benutzer zurückwechseln über

postgres@vm1:/etc/postgresql/9.4/kivicluster$ exit

Apache2 für Kivitendo konfigurieren

Zuerst wechseln wir den Ordner und gehen in die Konfigurationseinstellungen vom Webserver:

user1@vm1:/etc/postgresql/9.4/kivicluster$ cd /etc/apache2/sites-available/

Dort erstellen wir uns eine Kopie der Testseite mit einem anderen Namen

user1@vm1:/etc/apache2/sites-available$ sudo cp -a 000-default.conf kivitendo.conf

Und gehen anschliessend die neue Datei editieren

user1@vm1:/etc/apache2/sites-available$ sudo nano kivitendo.conf 

Wir müssen den Port ändern, da wir nicht zwei verschiedene Seiten auf dem gleichen Port haben können und dazu noch weitere Parameter eingeben:

<VirtualHost *:81>
        DocumentRoot /var/www/git/kivitendo-erp 

AddHandler fcgid-script .fpl
AliasMatch ^/[^/]+\.pl /var/www/git/kivitendo-erp/dispatcher.fpl
Alias /kivitendo-erp/ /var/www/git/kivitendo-erp/
FcgidMaxRequestLen 10485760

<Directory /var/www/git/kivitendo-erp>
 AddHandler cgi-script .pl
 Options ExecCGI Includes FollowSymlinks
</Directory>
<Directory /var/www/git/kivitendo-erp/users>
 Order Deny,Allow
 Deny from All
</Directory>

Da wir diese neue Seite nur in den verfügbaren Seiten (sites-available) editiert haben müssen wir dies auch noch in den aktiven Seiten "einfügen". Also wechseln wir zuerst mal den Ordner

user1@vm1:/etc/apache2/sites-available$ cd ../sites-enabled/

Und erstellen einen symbolischen Link zu der eben editierten Seite

user1@vm1:/etc/apache2/sites-enabled$ sudo ln -s ../sites-available/kivitendo.conf kivitendo.conf

Es ist auch noch nötig ein Modul im Webserver zu aktivieren. In unserem Fall zeigt die Nachricht, dass es bereits aktiv war:

user1@vm1:/etc/apache2/sites-available$ sudo a2enmod fcgid
Module fcgid already enabled

Nur die Seite mit einem anderen Port zu erstellen reicht nicht aus. Wir müssen der Konfigurationsdatei für Ports vom Webserver dies auch noch beibringen und müssen dazu die Datei /etc/apache2/ports.conf editieren gehen:

user1@vm1:/etc/apache2$ sudo nano ports.conf
Listen 80
Listen 81

Dass unsere Änderungen am Webserver aktiv werden müssen wir den Dienst vom Webserver neu starten. Dies machen wir über

user1@vm1:/etc/apache2$ sudo systemctl restart apache2.service

Ab jetzt kommen wir auf eine Grundmaske von Kivitendo. Leider ist es noch immer nicht vollständig konfiguriert. Da wir jedoch unsere Schulungszeit massiv überzogen haben um zu diesem Punkt zu kommen, müssten wir dies ein nächstes Mal machen.,