ubuntuusers.de

ubuntuusers.deWikiDAViCal

DAViCal

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Artikel für fortgeschrittene Anwender

Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

./davical_logo.png DAViCal {en} (ehemals "Really Simple CalDAV Store" bzw. RSCDS) ist ein Kalenderserver, welcher das CalDAV-Protokoll implementiert. Das CalDAV-Protokoll erweitert das HTTP- bzw. das WebDAV-Protokoll um Zugriffsicherungs- und Auswertungsfunktionen für das Kalenderaustauschformat iCalendar. Der Server selbst ist in PHP 5 programmiert und verwendet für die Verwaltung der Daten eine PostgreSQL-Datenbank.

Es können verschiedene Arten von Nutzern definiert werden, welche Kalender schreiben, lesen oder auch nur freie Termine einer anderen Person einsehen dürfen. Die Kalender können mit diversen Programmen abgerufen und modifiziert werden. Auch Mobilgeräte und Telefone sind teilweise in der Lage, sich mit den (online) veröffentlichten Kalendern zu synchronisieren. Unter anderem können die folgenden Client-Programme bzw. Geräte mit DAViCal verwendet werden:

Neben der Funktion als reiner Kalenderserver kann DAViCAL auch Aufgabenlisten und Notizen verwalten. So wird es möglich, Treffen mit anderen Personen zu planen, Aufgaben in einem Team zu verteilen und die Arbeit zu organisieren.

Sehr interessant ist ein DAViCal-Server in Kombination mit Postfix, Fetchmail, Dovecot (IMAP), OpenLDAP und einen geeigneten E-Mail-Programm mit Kalenderfunktion, da diese Kombination von der Funktion her recht nahe an die weit verbreitete kommerzielle Lösung Exchange / Outlook herankommt (siehe auch weitere Alternativen zu Outlook / MS-Exchange unter Linux {de}). Wen die Kombination verschiedener Einzelprogramme abschreckt, sollte sich DavMail Gateway {en} anschauen. Diese Software stellt ein Gateway zu einem bestehenden Exchange-Server bereit.

Seit Version 0.9.9.2 (erst ab Ubuntu 11.04 in den offiziellen Paketquellen enthalten) kann ein DAViCal-Server auch Adressen im CardDAV-Format verarbeiten, womit eine gemeinsame Adressenverwaltung auch ohne LDAP z.B. mit Evolution möglich ist.

Installation

Voraussetzungen

Zunächst müssen Apache, PHP 5 und PostgreSQL installiert werden und prinzipiell funktionieren. Anleitungen dazu findet man in den Artikeln:

Paketquellen

DAViCal ist in den offiziellen Paketquellen enthalten. Folgende Pakete müssen installiert werden [1]:

  • davical (universe)

  • davical-doc (optional, Dokumentation)

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install davical davical-doc 

sudo aptitude install davical davical-doc 

Fremdquelle

Da die in den offiziellen Paketquellen enthaltene Version im Regelfall deutlich älter als der aktuelle Entwicklungsstand ist, ist eine manuelle Installation interessant. Dazu kann man entweder folgende Fremdquelle nutzen und die jeweiligen Pakete manuell installieren. Die Verwendung der Fremdquelle hat allerdings den Vorteil, dass Updates automatisch eingespielt werden.

Um aus der Fremdquelle zu installieren, muss man unabhängig von der Ubuntu-Version die folgende Paketquelle freischalten:

Hinweis!

Zusätzliche Fremdquellen können das System gefährden.

deb http://debian.mcmillan.net.nz/debian lenny awm

Um die Fremdquelle zu authentifizieren, wird der Signierungsschlüssel über folgenden Befehl heruntergeladen und der Paketverwaltung hinzugefügt:

sudo apt-key advanced --keyserver pgp.net.nz --recv-keys F6E0FA5CF0307507BB23A512EAFCFEBF8FEB8EBF 

Jetzt können die Pakete

  • davical

  • davical-doc

wie oben installiert werden.

Alternativ können jeweils drei fertige .deb-Pakete für 32-Bit {en} {dl} oder 64-Bit {en} {dl} Systeme heruntergeladen und manuell installiert werden. Hierbei muss die Installation des Pakets libawl-php zuerst erfolgen:

  • libawl-php_0.xy-z_all.deb

  • davical_0.9.x.y-z_all.deb

  • davical-doc_0.9.x.y-z_all.deb

Konfiguration

Diese Anleitung erhebt keinen Anspruch auf Vollständigkeit, stellt aber einen funktionierenden Kalenderserver mit Webadministration bereit. Eine ausführlichere Anleitung mit erweiterten Konfigurationsmöglichkeiten ist hier {en} zu finden.

Der Port 11371 darf nicht durch eine Firewall blockiert werden. .

Apache

Davical kann mit verschiedenen Webservern und PHP ab 5.1 arbeiten. Die Webserver können dann die Daten als Virtueller Host oder als simuliertes Unterverzeichnis zurück liefern. Die letztere, auch als Alias bezeichnete Variante wird im folgenden betrachtet.

Apache 2.2

Für Apache Version 2.2 kann eine Konfigurationsdatei als /etc/apache2/conf.d/davical.conf abgespeichert werden. Dazu die folgenden Zeilen entsprechend anpassen:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
## /etc/apache2/conf.d/davical.conf

# <IfModule mod_ssl.c>
Alias /davical /usr/share/davical/htdocs

<Directory /usr/share/davical/htdocs>
        Options Indexes
        DirectoryIndex index.php
        php_flag magic_quotes_gpc Off
        php_flag register_globals Off
        php_value include_path /usr/share/awl/inc
</Directory>
# </IfModule>

Apache 2.4

Für Apache Version 2.4 bzw. ab Ubuntu 13.10 liegt die Konfigurationsdatei in /etc/apache2/conf-available/ und wird mit einem symbolischen Link in /etc/apache2/conf-enabled/ gespiegelt. Sie lautet:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
## /etc/apache2/conf-available/davical.conf

# <IfModule mod_ssl.c>
Alias /davical /usr/share/davical/htdocs

<Directory /usr/share/davical/htdocs>
        Require all granted
        Options Indexes
        DirectoryIndex index.php
        php_flag magic_quotes_gpc Off
        php_flag register_globals Off
</Directory>
# </IfModule>

Der symbolische Link wird erzeugt mit

sudo ln -s /etc/apache2/conf-available/davical.conf /etc/apache2/conf-enabled/davical.conf 

Nach Änderungen in den Konfigurationsdateien muss der Webserver (Apache) neu gestartet werden.

sudo apache2ctl graceful 

Wer nur SSL-verschlüsselte Verbindungen erlauben will, kann die #-Kommentarzeichen vor den Zeilen mit <IfModule ...> und </IfModule> entfernen.

DAViCal Konfiguration

Im Verzeichnis /etc/davical/ wird eine Datei mit dem Namen config.php erstellt und der folgende Inhalt mit einem Texteditor eingetragen:

1
2
3
4
5
6
7
8
<?php
  $c->default_locale = "de_DE";
// Diesen String verwenden, wenn die Datenbank auf dem gleichen Host betrieben 
// wird, wie das Webinterface.
  $c->pg_connect[] = 'dbname=davical user=davical_app';
// Wenn der Datenbankserver auf einer anderen Maschine läuft, diesen String verwenden. 
//  $c->pg_connect[] = 'dbname=davical user=davical_app host=HOSTNAME port=5432';
?>

Die Konfigurationsdatei muss für den Apache lesbar sein. Diese erreicht man, indem man die Leserechte für andere Benutzer setzt.

sudo chmod 644 /etc/davical/config.php 

Hinweis:

Die Konfigurationsdatei kann auch so angelegt werden, dass fuer verschiedene Clients im Netzwerk verschiedene Datenbanken verwendet werden. (siehe Davical Configuration {en})

PostgreSQL

Hinweis:

Da in unterschiedlichen Ubuntu-Versionen auch die Versionen von PostgreSQL variieren, ist im folgenden x ein Platzhalter für die Versionsnummer des PostgreSQL-Servers.

Zuerst müssen in der PostgreSQL-Datenbank die Benutzer für DAViCal angelegt werden. Dafür wird ein Terminal [2] geöffnet und der folgende Befehl eingegeben:

sudo -u postgres createuser davical_app
sudo -u postgres createuser davical_dba 

Die Fragen nach superuser, roles und databases können alle mit "Nein" beantwortet werden, denn der neu zu erstellende Benutzer von PostgreSQL soll keine besonderen Rechte besitzen. Der Vorgang wird für einen weiteren Benutzer wiederholt, wieder werden die auftretenden Fragen verneint.

Jetzt müssen noch die Zugriffsrechte der beiden Nutzer für die PostgreSQL-Datenbank eingerichtet werden. Dazu wird die Konfigurationsdatei /etc/postgresql/VERSION/main/pg_hba.conf mit einem Editor [3] und Root-Rechten [4] geöffnet und die folgenden zwei Zeilen :" den vorhandenen Code vor den bereits vorhandenen Codeblöcken eingefügt.

[...]
# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
## DAViCal darf sich lokal OHNE passwort anmelden.
local   davical     davical_dba                     trust
local   davical     davical_app                     trust
[...]

Damit die Änderungen wirksam werden, muss der Datenbankserver neu gestartet werden:

sudo /etc/init.d/postgresql restart 

Bis Ubuntu 10.10 lautet der Befehl:

sudo /etc/init.d/postgresql-8.x restart 

Anschließend wird mit einem Skript die DAViCal-Datenbank angelegt:

sudo -u postgres -s /usr/share/davical/dba/create-database.sh 

Nachdem das Skript durchgelaufen ist, wird am Ende das Administrator-Password angezeigt.

Hinweis:

Dieses Passwort sollte man sich notieren. Es kann und sollte später über das Webinterface geändert werden. Das Passwort steht in jedem Fall auch als Klartext in der Datenbank. Bei entsprechender Konfiguration und Verwendung von SSL-Verschlüsselung (https://) ist dies jedoch vernachlässigbar.

Damit ist die Grundkonfiguration abgeschlossen und man kann sich mit der Erstellung von Benutzern und Ressourcen beschäftigen.

Benutzung

./davical_login.png

Administration

Als Administrator kann man mit einem Web-Browser lokal über

oder

auf die Verwaltung zugreifen und Benutzer und deren Rechte einrichten. Der Anmeldename ist admin und das Passwort ist das Passwort aus der Datenbankerstellung. Als Erstes sollte das Passwort geändert werden. Für einen schnellen Funktionstest ist es ausreichend, einen neuen Benutzer nur mit Benutzername und Passwort anzulegen.

Empfehlenswert ist auf jeden Fall ein Blick in die umfangreiche Dokumentation {en} , um z.B. Gruppen festzulegen, damit Benutzer auch untereinander Kalenderdaten austauschen können (siehe auch Clarification of user types and relationships {en}).

Clients

Der Zugriff mit einem geeignetem Clientprogramm erfolgt grundsätzlich über die Adresse (URL) des DAViCal-Servers:

http://<IP-Adresse-des-DAVical-Servers>/davical/caldav.php/<Benutzername>/home/

Das Verzeichnis /home ist der Standardkalender. Konfigurationsanleitungen mit Bildern für einzelnen Clients gibt es auf der Webseite Client Configuration {en} .

Ab Version 0.9.9.5 ist der Kalender über folgende URL erreichbar:

http://<IP-Adresse-des-DAVical-Servers>/davical/caldav.php/<Benutzername>/calendar/

Upgrade

Die neuen Pakete herunterladen und installieren. DAViCal bringt ein eigenes Upgrade-Skript zum Aktualisieren der Datenbank mit.

Hinweis:

Wer früher sichert, hat später was zum Rücksichern. Soll heißen: Vor dem Update sollte die Datenbank gesichert werden.

pg_dump -W -U postgres davical > davical_dateNtime.psql 

Dann kann man das Update-Skript ausführen:

sudo -u postgres -s /usr/share/davical/dba/update-davical-database 

Probleme und Lösungen

Weiße Seite nach der Installation

Zumindestens unter 10.04 Lucid Lynx kann es passieren, dass nach der Installation nur eine weiße Seite erscheint. Folgende Befehle könnten dann helfen:

cd /usr/share/davical/inc
sudo ln -s /usr/share/awl/inc/* . 

Termineinladungen

Im Zusammenspiel von DAViCal und Thunderbird/Lightning kann es beim Versenden von Termineinladungen zu Problemen kommen. Man kann zwar die Funktion zur Termineinladung in Lightning ausführen, aber im Anschluss wird weder die Frage nach der Outlook-Kompatibilität gestellt noch wird eine E-Mail versendet. Um dieses Problem zu lösen, ist ab der Version 0.9.9.4-1 von DAViCal der Konfigurationsdatei /etc/davical/<IP_Adresse oder kanonischer_Name>-conf.php eine Zeile hinzuzufügen:

$c->enable_auto_schedule = false;

Mit der Auslieferung von Thunderbird 5 / Lightning 1.04b kann es sein, dass der obere Workaround im Zusammenspiel mit DAViCal 0.9.9.4-1 nicht mehr funktioniert. Die Termineinladungen können nun aber durch Einfügen der folgenden Zeile in die /etc/davical/<IP_Adresse oder kanonischer_Name>-conf.php anstelle der zuvor genannten wieder aktiviert werden:

  $c->override_dav_header = '1, 2, 3, access-control, calendar-access, calendar-schedule, extended-mkcol, calendar-proxy, bind'; 

Der Mangel an dieser Lösung ist, dass eventuelle Neuerungen in zukünftigen Updates vielleicht nicht zur Verfügung stehen.

Synchronisation von Kontakten mit iOS

Möchte man Kontakte mit iOS Geräten (4.3.5) synchronisieren, dann muss die Konfiguration des Apache noch um einen zweiten Alias ergänzt werden, da die Account-URL bei CardDav-Accounts nicht manuell hinterlegt werden kann.

Die Konfigurationsdatei /etc/apache2/conf.d/davical.conf dazu um folgende Zeile ergänzen:

1
2
3
...
Alias /principals /usr/share/davical/htdocs
...

Statt eines CalDav-Accounts wie bei einem Kalender fügt man dann einen CardDav-Account hinzu.

Alternativen

Diese Revision wurde am 9. April 2014 13:48 von FireX erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Server, Kalender, Büro, Kommunikation