Ein Interessent fragte bei uns an, ob wir eine Tine 2.0-Installation mittels Paketverwaltung unter Debian 7.x Wheezy und in Verbindung mit PostgreSQL vornehmen könnten. Diese Kombination hatten wir bislang nicht, daher dieser Beitrag.

Klassischerweise installiert man Tine 2.0 auf einem LAMP (Linux, Apache, MySQL und PHP). Was die Datenbank betrifft, so ist zwar im Wiki des Projekts nach wie vor nur von MySQL die Rede, aber seit Ende 2012 gibt es ebenfalls eine Unterstützung für PostgreSQL und sogar Oracle.

Eine der Fragen, die sich stellten war, ob der Assistent, der bei einer Tine 2.0-Installation via Paketquelle aufgerufen wird, überhaupt nach dem Typ des Datenbankservers fragt. Um es vorweg zu nehmen: Nein, tut er nicht, aber dennoch ist eine Installation ohne große Hürden machbar.

Die folgenden Befehle wurden als root ausgeführt. Als Basissystem wurde ein Debian 7.1.0 Wheezy 64-bit verwendet.

PostgreSQL installieren und konfigurieren

Mit dem Befehl

apt-get install postgresql postgresql-client

wird der PostgreSQL-Server und -Client (für die Verwaltung) installiert. Im Unterschied zu MySQL verläuft die Installation unter Debian etwas anders, da kein Assistent startet und nach dem Datenbank-root-Benutzer des Datenbankservers fragt. Stattdessen wird sowohl ein Linux- als auch ein PostgreSQL-Benutzer mit dem Namen “postgres” angelegt, der im weiteren Verlauf verwendet wird.

Der “postgres”-Benutzer ist damit der Administrator für den Datenbankserver. Für Tine 2.0 muss ein neuer Benutzer samt Datenbank angelegt werden:

su - postgres
psql
CREATE USER tine20 WITH PASSWORD 'KENNWORT';
CREATE DATABASE tine20 OWNER tine20;

Mit dem ersten Befehl wechselt man zu dem Linux-Benutzer “postgres”, der automatisch bei der Installation eingerichtet wurde. Der zweite Befehl startet den PostgreSQL-Client. Die beiden letzten Befehle erzeugen einen neuen Datenbank-Benutzer und eine neue Datenbank.

Den PostgreSQL-Client verlässt man mit

\q

Hinweis: Da der “postgres”-Datenbankbenutzer per Standard kein Kennwort hat, sollte man aus Sicherheitsgründen eines vergeben:

\password postgres

Paketquellen vorbereiten

Zunächst müssen die Tine 2.0-Paketquellen dem System hinzugefügt werden:

nano /etc/apt/sources.list

Die folgenden Zeilen einfügen und die Änderung speichern:

# Tine 2.0 Repository
deb http://packages.tine20.org/debian squeeze stable

An dieser Stelle darf man sich nicht wundern, es wird zwar als Quelle Squeeze angegeben, Diese funktioniert aber auch unter Wheezy, da es sich nur um ein Metapaket handelt. D.h. es werden die notwendigen Komponenten (Webserver, PHP) aus dem System-Repository und der Tine 2.0-Webstack heruntergeladen und installiert.

Damit die Tine 2.0-Pakete angenommen werden, muss der passende Schlüssel dem System hinzugefügt werden:

apt-key adv --recv-keys --keyserver keys.gnupg.net 7F6F6895

Während dieser Beitrag geschrieben wurde, gab es Probleme vom Server keys.gnupg.net den Schlüssel für die Tine 2.0-Pakete zu erhalten. Abhilfe schaffte die Abfrage eines anderen Servers:

apt-key adv --keyserver keyserver.topnet.de --recv-keys 7F6F6895

Nun fährt man noch ein Update der Paketquellen und ist damit bereit für die Installation:

apt-get update

Tine 2.0 installieren und konfigurieren

Die eigentlich Installation wird mit dem Befehl

apt-get install tine20

angestoßen. Nachdem die Pakete heruntergeladen und installiert wurden startet ein Assistent, der nach dem zu verwendeten Webserver (Apache/Lighttpd) und dem Setup-Benutzer von Tine 2.0 fragt. Gegen Ende der Installation wird normalerweise der Datenbankserver abfragt. Allerdings besteht hier eine Abhängigkeit zu MySQL, deswegen scheitert die Ausführung des Nachinstallations-Skripts:

...
[ ok ] Reloading web server config: apache2.
tine20-webstack (2013.03.7-0) wird eingerichtet ...
Enabling module rewrite.
To activate the new configuration, you need to run:
  service apache2 restart
Enabling module expires.
To activate the new configuration, you need to run:
  service apache2 restart
tine20 (2013.03.7-0) wird eingerichtet ...
/var/lib/dpkg/info/tine20.postinst: 50: /var/lib/dpkg/info/tine20.postinst: mysql: not found
/var/lib/dpkg/info/tine20.postinst: 51: /var/lib/dpkg/info/tine20.postinst: mysql: not found

Update 24.09.2013: Zukünftig sollte es keine Fehlermeldungen mehr geben, da eine Überprüfung, ob der MySQL-Client installiert ist, eingebaut wurde. Vielen Dank an Philipp und Lars von Tine 2.0 für’s Feedback.

Der Webserver, PHP und Tine 2.0 sind zu diesem Zeitpunkt allerdings schon auf dem System installiert. Damit die PostreSQL-Unterstützung in PHP und damit auch für Tine 2.0 verfügbar ist, muss dieser Befehl ausgeführt werden:

apt-get install php5-pgsql

Nachdem der Befehl ausgeführt wurde, kann man in den “Setup Checks” von Tine 2.0 (siehe weiter unten) neben der MySQL- auch die PostgreSQL-Unterstützung sehen.

Über einen Browser kann man das Tine 2.0-Setup aufrufen:

http://IP-ODER-HOSTNAME/tine20/setup.php

Nach erfolgter Anmeldung als Tine 2.0-Setup-Benutzer, muss man zunächst den Lizenzverträgen zustimmen und nach erfolgreichen “Setup Checks” zum “Config Manager” wechseln.

Dort stellt man im Abschnitt “Database” bei “Backend” “PostgreSQL” ein und macht Angaben zum Datenbank-Benutzer. Bei Port muss “5432” eingetragen werden, andernfalls kommt keine Verbindung zustande.

Ab hier kann man wie gewohnt das Setup von Tine 2.0 konfigurieren und die gewünschten Anwendungen installieren.

Cronjob

Der Cronjob für Tine 2.0 ist relevant, damit Kalenderalarme funktionieren. Die notwendige Vorgehensweise ist hier beschrieben:

Tine 2.0: Cronjob anlegen

Backup

Neben den Tine 2.0-Dateien muss vor allem die Datenbank gesichert werden. PostgreSQL bietet dafür das Tool

pg_dump

an. Ein einfacher Backup-Befehl könnte z.B. so aussehen:

pg_dump --file=tine20_db_backup.sql tine20

Updates

Das Aktualisieren einer Tine 2.0-Installation, die über die Paketverwaltung realisiert ist, ist nicht alleine mit dem Befehl

apt-get update && apt-get upgrade

getan. Im Nachgang muss nach der Paketaktualisierung das Setup-Skript ausgeführt werden. Die Prozedur dazu ist in diesem Beitrag beschrieben:

Tine 2.0: Updaten von Tine 2.0 bei Installation über die Paketquellen

Persönliche Bemerkung

Das ist das erste Mal überhaupt, das ich mit PostgreSQL etwas zu tun habe. So wie es nach diesem Test aussieht, ist das Setup recht einfach und funktional. Einzig die Gewohnheit, sprich MySQL, bringt einen gern mal durcheinander.

Links & Einzelnachweise

Debian Wiki – PostgreSQL

PostgreSQL Datenbank-Server unter Debian GNU/Linux 5.0 “Lenny” Howto

ubuntuusers Wiki – PostgreSQL

PostgreSQL-Buch

Tine 2.0 Wiki – Install Howto

Tine 2.0: Installation mittels Repository