Installation
Anleitung zur Installation und Konfiguration von DAViCal unter Debian squeeze.
Unter Debian kann einfach das Repository des DAViCal Autors Andrew McMillan eingebunden werden, und zwar über die Datei /etc/apt/sources.lst:
… deb http://debian.mcmillan.net.nz/debian lenny awm
Die Pakete für lenny funktionieren ohne Probleme unter squeeze. Bevor das Repository eingelesen werden kann, muß noch der PGP-Schlüssel eingelesen werden:
# sudo apt-key advanced --keyserver pgp.net.nz --recv-keys F6E0FA5CF0307507BB23A512EAFCFEBF8FEB8EBF
Jetzt kann DAViCal und mögliche Zusatzkomponenten (diese werden automatisch über die Paketverwaltung aufgelöst) installieren:
# apt-get update # apt-get install davical
Datenbank
Als Datenbank wird PostgreSQL verwendet. Die Zugriffsrechte auf die Datenbank für DAViCal sind durch Konfiguration der Datei /etc/postgresql/8.4/main/pg_hba.conf zu realisieren:
local davical davical_app trust local davical davical_dba trust
Danach ist der Datenbankserver neu zu starten:
invoke.rc-d postgresql restart
Jetzt können die Datenbanken für DAViCal über ein eigenes Skript angelegt werden:
# su postgres -c /usr/share/davical/dba/create-database.sh
Webserver
Den Webserver sollte man gleich auf dem Standard-Port für Caldav 8443 und mit SSL laufen lassen. Folgende Konfiguration wurde über die Datei /etc/apache2/sites-available/davical angelegt:
# Virtual Host def for Debian packaged DAViCal <VirtualHost *:8443 > DocumentRoot /usr/share/davical/htdocs SSLEngine on SSLCertificateFile /etc/ssl/certs/caldav2.cert SSLCertificateKeyFile /etc/ssl/certs/caldav2.key DirectoryIndex index.php index.html ServerName cal.example.com ServerAlias cal1.example.com Alias /images/ /usr/share/davical/htdocs/images/ CustomLog /var/log/apache2/davical_access.log combined <Directory /usr/share/davical/htdocs/> AllowOverride None Order allow,deny Allow from all </Directory> AcceptPathInfo On php_value include_path /usr/share/awl/inc php_value magic_quotes_gpc 0 php_value register_globals 0 php_value error_reporting "E_ALL & ~E_NOTICE" php_value default_charset "utf-8" RewriteEngine On RewriteCond %{REQUEST_URI} !^/$ RewriteCond %{REQUEST_URI} !/.(php|css|js|png|gif|jpg) RewriteRule ^(/principals/users.*)$ /caldav.php$1 [NC,L] </VirtualHost>
Danach können die SSL-Zertifikate angelegt werden. Bei der Frage nach dem »Common Name« am besten den Servernamen angeben:
# openssl genrsa -out certs/caldav2.key 2048 # openssl req -new -key certs/caldav2.key -out private/caldav2.csr # openssl x509 -req -days 3650 -in private/caldav2.csr -signkey certs/caldav2.key -out certs/caldav2.cert
Bevor der Webserver mit dieser Konfiguration laufen kann, muß diese erst geladen werden und gegebenfalls auch Module aktiviert werden (ssl und rewrite sind unter Debian standardmäßig nicht aktiviert):
# a2ensite davical # a2enmod ssl # a2enmod rewrite # invoke-rc.d apache2 restart
Konfiguration von DAViCal
Im letzten Schritt wird DAViCal konfiguriert. Dabei wird eine Datei /etc/davical/cal1.rana.at-conf.php mit folgendem Inhalt erstellt:
<?php $c->domain_name = 'cal1.example.com'; $c->sysabbr = 'davical'; $c->system_name = 'DAViCal CalDAV Server'; $c->admin_email = 'davical@example.com'; $c->pg_connect[] = 'dbname=davical user=davical_app';
Jetzt kann man mit einem Webbrowser auf die Administrationsoberfläche des DAViCal-Servers über die URL https://cal.example.com:8443 zugreifen:
Man kann jetzt mit dem User admin und seinem Passwort zugreifen. Wenn man sich das Passwort nicht notiert hat, kann man es noch einmal auslesen:
# su postgres > psql davical -c 'select username, password from usr;'
Dies funktioniert allerdings nur solange, bis man das Administratorpasswort über die Weboberfläche ändert. Danach ist es im Klartext nicht mehr auslesbar!