Server-Schulung-Teil8-Weiter installieren von Kivitendo
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 Punk 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
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
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
user1@vm1:/etc/postgresql/9.4/kivicluster$ cd /etc/apache2/sites-available/
user1@vm1:/etc/apache2/sites-available$ sudo cp -a 000-default.conf kivitendo.conf user1@vm1:/etc/apache2/sites-available$ sudo nano kivitendo.conf
<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>
user1@vm1:/etc/apache2/sites-available$ cd ../sites-enabled/ user1@vm1:/etc/apache2/sites-enabled$ sudo ln -s ../sites-available/kivitendo.conf kivitendo.conf
user1@vm1:/etc/apache2$ sudo nano ports.conf
Listen 80 Listen 81
user1@vm1:/etc/apache2$ sudo systemctl restart apache2.service
-> in browser aufrufbar, doch fehler, da .pl noch nicht verarbeitet werden kann.
user1@vm1:/etc/apache2$ cd sites-available/ user1@vm1:/etc/apache2/sites-available$ sudo nano kivitendo.conf
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>
user1@vm1:/etc/apache2/sites-available$ sudo a2enmod fcgid
Module fcgid already enabled
-> komme auf eine grundmaske,