Server-Schulung-Teil8-Weiter installieren von Kivitendo: Unterschied zwischen den Versionen
(9 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt) | |||
Zeile 4: | Zeile 4: | ||
== Preface == | == Preface == | ||
− | + | 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. | |
− | |||
− | This training session took place on 04-27-17. | ||
<br /> | <br /> | ||
Zeile 14: | Zeile 12: | ||
+ | == Install an additional locale == | ||
+ | |||
+ | 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/> | ||
+ | |||
+ | user1@vm1:/var/www/git/kivitendo-erp$ sudo dpkg-reconfigure locales | ||
+ | <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/> | ||
+ | |||
+ | == Configure PostgreSQL == | ||
+ | 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:/var/www/git/kivitendo-erp$ git status | ||
+ | Auf Branch produktiv | ||
+ | nichts zu committen, Arbeitsverzeichnis unverändert | ||
+ | |||
+ | 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 | ||
+ | |||
+ | 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 | ||
+ | |||
+ | 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> | ||
+ | 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) | ||
+ | </pre> | ||
+ | |||
+ | 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 | ||
+ | === Create a new cluster === | ||
+ | We wish to create a new cluster with de_DE, as it's unclear what would happen with de_CH. For that we've previously added the de_DE encoding.<br/> | ||
+ | |||
+ | We have to find out what version of PostgreSQL we're using. For that you can change the directory or lists it's content. It will be found under the following path /etc/postgresql/"version number". In our case we have version 9.4. As I chose a cluster name with a "-" in it, I had some issues. So what follows is the version that works. So please be careful with what name you give your new cluster.<br/> | ||
+ | |||
+ | <pre> | ||
+ | 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 | ||
+ | </pre> | ||
+ | |||
+ | === Configure the cluster === | ||
+ | |||
+ | In the next step we change to the directory that contains the configuration files of our newly created cluster. A general synthax for this is | ||
+ | cd /etc/postgresql/9.4/"cluster name"/ | ||
+ | In my case it was | ||
+ | user1@vm1:/var/www/git/kivitendo-erp$ cd /etc/postgresql/9.4/kivicluster/ | ||
+ | |||
+ | First we look at the configuration file with the name postgresql.conf: | ||
+ | user1@vm1:/etc/postgresql/9.4/kivicluster$ sudo less postgresql.conf | ||
+ | One line states the following | ||
+ | #listen_addresses = 'localhost' # defaults to 'localhost'; use '*' for all | ||
+ | The # sign tells us that this line is only a comment. If we'd remove the # at the beginning, everything after the second # would only be a comment. There it tells us that it automatically choses 'localhost' if no other parameter is found.<br/> | ||
+ | If PostgreSQL runs on a different machine than Kivitendo, you'll have to enter the IP address here.<br> | ||
+ | <br/> | ||
+ | We'll have to remember the port that will be used. The default port is 5432 and as we've created a new cluster the number goes up by 1 that we end up with 5433. There are many more configuration options available in postgresql.conf, but we don't have to change these.<br> | ||
+ | <br/> | ||
+ | You can look at the next file first | ||
+ | user1@vm1:/etc/postgresql/9.4/kivicluster$ sudo less pg_hba.conf | ||
+ | As we're planing on editing the file, we first create a copy of it | ||
+ | user1@vm1:/etc/postgresql/9.4/kivicluster$ sudo cp -a pg_hba.conf pg_hba.conf_27-04-17 | ||
+ | Now we edit it with the program nano | ||
+ | user1@vm1:/etc/postgresql/9.4/kivicluster$ sudo nano pg_hba.conf | ||
+ | |||
+ | We have to do changes at the end of the file. | ||
+ | <pre> | ||
+ | # "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 | ||
+ | </pre> | ||
+ | |||
+ | After making these changes we can activate the new cluster. We do this with the following command: | ||
+ | user1@vm1:/etc/postgresql/9.4/kivi-cluster$ sudo systemctl start postgresql@9.4-kivicluster.service | ||
+ | So the cluster is activated the next time the machine boots, we have to change the last command slightly and enter: | ||
+ | user1@vm1:/etc/postgresql/9.4/kivicluster$ sudo systemctl enable postgresql@9.4-kivicluster.service | ||
+ | |||
+ | We need to change once more to the user postgres | ||
+ | user1@vm1:/etc/postgresql/9.4/kivicluster$ sudo su postgres | ||
+ | And access the database template1 | ||
+ | <pre> | ||
+ | postgres@vm1:/etc/postgresql/9.4/kivicluster$ psql -p 5433 template1 | ||
+ | psql (9.4.10) | ||
+ | Geben Sie »help« für Hilfe ein. | ||
+ | |||
+ | template1=# | ||
+ | </pre> | ||
+ | Within the database we need to enter the following command: | ||
+ | <pre> | ||
+ | template1=# CREATE EXTENSION IF NOT EXISTS plpgsql; | ||
+ | HINWEIS: Erweiterung »plpgsql« existiert bereits, wird übersprungen | ||
+ | CREATE EXTENSION | ||
+ | </pre> | ||
+ | To leave the database we enter \q: | ||
+ | <pre> | ||
+ | template1=# \q | ||
+ | </pre> | ||
+ | |||
+ | === Create a new user in PostgreSQL === | ||
+ | |||
+ | While we're still the user postgres we need to create a new user in PostgreSQL. We do this by typing | ||
+ | postgres@vm1:/etc/postgresql/9.4/kivicluster$ createuser -p 5433 -d -P kivitendo | ||
+ | ''I chose kivitendo as password for the test server. On a live system you should pick a more complex password. You'll have to enter it in plain text in a configuration file but won't use it much otherwise.''<br> | ||
+ | '''''05-15-17 -> Corrected the synthax, as we created the new user in the wrong database.''''' | ||
+ | <br/> | ||
+ | We change back to the regular user by typing | ||
+ | postgres@vm1:/etc/postgresql/9.4/kivicluster$ exit | ||
+ | |||
+ | == Configure Apache2 for Kivitendo == | ||
+ | |||
+ | First we change to the directory with the configuration files of the web server: | ||
+ | user1@vm1:/etc/postgresql/9.4/kivicluster$ cd /etc/apache2/sites-available/ | ||
+ | There we create a copy of the default page with a different name | ||
+ | user1@vm1:/etc/apache2/sites-available$ sudo cp -a 000-default.conf kivitendo.conf | ||
+ | And then we edit that file | ||
+ | user1@vm1:/etc/apache2/sites-available$ sudo nano kivitendo.conf | ||
+ | We have to change the port, as we can't run to pages on the same port and also enter additianl parameters: | ||
+ | <pre> | ||
+ | <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> | ||
+ | </pre> | ||
+ | |||
+ | As we made this file in sites-available, we have to enable it as well. So we change the folder | ||
+ | user1@vm1:/etc/apache2/sites-available$ cd ../sites-enabled/ | ||
+ | And create a symbolic link to the file we've just edited | ||
+ | user1@vm1:/etc/apache2/sites-enabled$ sudo ln -s ../sites-available/kivitendo.conf kivitendo.conf | ||
+ | |||
+ | It is also necessary to activate a module on the web server and the message we got told us that it was already active in our case: | ||
+ | user1@vm1:/etc/apache2/sites-available$ sudo a2enmod fcgid | ||
+ | Module fcgid already enabled | ||
+ | |||
+ | To make the new page with a different port isn't sufficient to have it running. We also have to edit the configuration file for ports on the web server. It can be found under /etc/apache2/ports.conf: | ||
+ | |||
+ | user1@vm1:/etc/apache2$ sudo nano ports.conf | ||
+ | Listen 80 | ||
+ | Listen 81 | ||
+ | That our changes become active we need to restart the service of the web server. We do this by typing | ||
+ | user1@vm1:/etc/apache2$ sudo systemctl restart apache2.service | ||
+ | |||
+ | Now we get a first mask for Kivitendo. Unfortunately the program is still not fully configured. So, to be continued.... | ||
Zeile 28: | Zeile 199: | ||
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 | 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> | </pre> | ||
+ | |||
+ | == 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 [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 | ||
+ | <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> | ||
+ | <br/> | ||
== 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 Punkt 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 | ||
user1@vm1:~$ cd /var/www/git/kivitendo-erp/ | user1@vm1:~$ cd /var/www/git/kivitendo-erp/ | ||
Zeile 38: | Zeile 218: | ||
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: | + | Um sicher zu gehen, dass noch alles ist wie wir es hinterlassen haben führen wir nochmals das Script aus:<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: | 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: | ||
Zeile 58: | Zeile 225: | ||
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 | + | 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. |
<pre> | <pre> | ||
− | postgres@vm1:/var/www/git/kivitendo-erp$ echo '\l' | psql | + | postgres@vm1:/var/www/git/kivitendo-erp$ echo '\l' | psql |
Liste der Datenbanken | Liste der Datenbanken | ||
Name | Eigentümer | Kodierung | Sortierfolge | Zeichentyp | Zugriffsprivilegien | Name | Eigentümer | Kodierung | Sortierfolge | Zeichentyp | Zugriffsprivilegien | ||
Zeile 72: | Zeile 239: | ||
</pre> | </pre> | ||
− | + | Wir dürfen den Benutzer postgres wieder verlassen und mit dem normalen Benutzer weitermachen. | |
− | |||
− | postgres | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | 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.<br/> | |
− | + | 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.<br/> | |
− | + | <pre> | |
− | user1@vm1:/var/www/git/kivitendo-erp$ sudo pg_createcluster --locale=de_DE.UTF-8 --encoding=UTF-8 9.4 | + | 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 ... | Creating new cluster 9.4/kivi-cluster ... | ||
config /etc/postgresql/9.4/kivi-cluster | config /etc/postgresql/9.4/kivi-cluster | ||
Zeile 108: | Zeile 257: | ||
Flags von /var/lib/postgresql/9.4/kivi-cluster wie folgt gesetzt: -------------e-C | Flags von /var/lib/postgresql/9.4/kivi-cluster wie folgt gesetzt: -------------e-C | ||
port 5433 | port 5433 | ||
+ | </pre> | ||
− | + | === Cluster konfigurieren === | |
− | |||
− | user1@vm1:/etc/postgresql/9.4/ | + | 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.<br/> | ||
+ | Falls man PostgreSQL auf einer anderen Maschine hat als Kivitendo, so muss man hier die IP Adresse dazu eintragen.<br> | ||
+ | <br/> | ||
+ | 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.<br> | ||
+ | <br/> | ||
+ | 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/ | + | user1@vm1:/etc/postgresql/9.4/kivicluster$ sudo nano pg_hba.conf |
− | + | Die Anpassungen müssen wir am Ende der Datei machen. | |
− | + | <pre> | |
− | |||
# "local" is for Unix domain socket connections only | # "local" is for Unix domain socket connections only | ||
local all kivitendo password | local all kivitendo password | ||
Zeile 132: | Zeile 292: | ||
# IPv6 local connections: | # IPv6 local connections: | ||
#host all all ::1/128 md5 | #host all all ::1/128 md5 | ||
+ | </pre> | ||
− | user1@vm1:/etc/postgresql/9.4/kivi-cluster$ sudo systemctl start postgresql@9.4- | + | 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/ | + | 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 | |
− | postgres@vm1:/etc/postgresql/9.4/kivicluster$ psql -p | + | Und auf die Datenbank template1 zugreifen |
+ | <pre> | ||
+ | postgres@vm1:/etc/postgresql/9.4/kivicluster$ psql -p 5433 template1 | ||
psql (9.4.10) | psql (9.4.10) | ||
Geben Sie »help« für Hilfe ein. | Geben Sie »help« für Hilfe ein. | ||
template1=# | template1=# | ||
− | + | </pre> | |
+ | Innerhalb der Datenbank müssen wir den folgenden Befehl eingeben: | ||
+ | <pre> | ||
template1=# CREATE EXTENSION IF NOT EXISTS plpgsql; | template1=# CREATE EXTENSION IF NOT EXISTS plpgsql; | ||
HINWEIS: Erweiterung »plpgsql« existiert bereits, wird übersprungen | HINWEIS: Erweiterung »plpgsql« existiert bereits, wird übersprungen | ||
CREATE EXTENSION | CREATE EXTENSION | ||
− | + | </pre> | |
+ | Um die Datenbank wieder zu verlassen geben wir \q ein: | ||
+ | <pre> | ||
template1=# \q | template1=# \q | ||
− | + | </pre> | |
− | |||
− | + | === 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 -p 5433 -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.''<br> | ||
+ | '''''15.05.17 -> Habe die Synthax korrigiert, da wir diese falsch hatte und somit nicht in der gewünschten Datenbank den neuen Benutzer erstellt.''''' | ||
+ | <br/> | ||
+ | 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: | ||
+ | <pre> | ||
<VirtualHost *:81> | <VirtualHost *:81> | ||
DocumentRoot /var/www/git/kivitendo-erp | DocumentRoot /var/www/git/kivitendo-erp | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
AddHandler fcgid-script .fpl | AddHandler fcgid-script .fpl | ||
− | AliasMatch ^/[^/]+\.pl /var/www/git/kivitendo-erp/dispatcher.fpl | + | AliasMatch ^/kivitendo-erp/[^/]+\.pl /var/www/git/kivitendo-erp/dispatcher.fpl |
− | Alias /kivitendo-erp | + | Alias /kivitendo-erp /var/www/git/kivitendo-erp |
FcgidMaxRequestLen 10485760 | FcgidMaxRequestLen 10485760 | ||
<Directory /var/www/git/kivitendo-erp> | <Directory /var/www/git/kivitendo-erp> | ||
− | + | AllowOverride All | |
Options ExecCGI Includes FollowSymlinks | Options ExecCGI Includes FollowSymlinks | ||
+ | Require all granted | ||
</Directory> | </Directory> | ||
− | < | + | <DirectoryMatch /var/www/git/kivitendo-erp/users> |
− | + | Require all denied | |
− | + | </DirectoryMatch> | |
− | </ | + | </pre> |
− | |||
− | user1@vm1:/etc/apache2/sites-available$ | + | 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. | ||
}} | }} | ||
[[Kategorie:Schulungen_/_Workshops]],[[Kategorie:Server-Schulung]] | [[Kategorie:Schulungen_/_Workshops]],[[Kategorie:Server-Schulung]] |
Aktuelle Version vom 21. Oktober 2017, 08:29 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 -p 5433 -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.
15.05.17 -> Habe die Synthax korrigiert, da wir diese falsch hatte und somit nicht in der gewünschten Datenbank den neuen Benutzer erstellt.
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 ^/kivitendo-erp/[^/]+\.pl /var/www/git/kivitendo-erp/dispatcher.fpl Alias /kivitendo-erp /var/www/git/kivitendo-erp FcgidMaxRequestLen 10485760 <Directory /var/www/git/kivitendo-erp> AllowOverride All Options ExecCGI Includes FollowSymlinks Require all granted </Directory> <DirectoryMatch /var/www/git/kivitendo-erp/users> Require all denied </DirectoryMatch>
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.,