Derzeit verwende ich DAViCal 1.1.1 mit 2 Patches. Dies funktioniert mit allen meinen OS X und iOS Geräten.
Notwendige Komponenten
- postgresql
- phppgadmin
Installation und Konfiguration von postgresql
Falls noch nicht durchgeführt, den Datenbank-Server postgresql und weiter zugehörige Komponenten installieren:
apt-get install postgresql postgresql-client postgresql-contrib
Mit der Installation von postgresql wird gleichzeitig der Datenbank Benutzer postgres erstellt. Mit diesem Benutzer können werden die weiteren Konfigurationsschritte durchgeführt:
su - postgres
Zur Datenbank verbinden:
$ psql psql (9.1.14) Geben Sie »help« für Hilfe ein. $ psql psql (9.1.14) Geben Sie »help« für Hilfe ein. postgres=#
Das Datenbank Passwort für den Benutzer postgres setzen und danach aus dem Datenbank-Client ausloggen:
postgres=# \password postgres Enter new password: Enter it again: postgres=# \q
Einen Datenbank-Benutzer für den Zugriff neu erstellen und ausloggen:
$ createuser Enter name of role to add: kumar Shall the new role be a superuser? (y/n) y postgres=# \q
Installation und Konfiguration von phppgadmin (optional, aber sehr empfehlenswert)
Installation von phppgadmin:
apt-get install phpgpadmin
Es ist sehr empfehlenswert, den Zugriffspfad zu ändern und für den Zugriff ein Passwort via Webserver zu setzen, falls der Server aus dem Internet erreichbar ist. Dazu sind folgende Änderungen in der Datei /etc/apache2/conf.d/phpgpadmin notwendig (die Änderungen zur Standardkonfiguration sind rot hervorgehoben):
Alias /gemma_zu_phpgpadmin /usr/share/phppgadmin/ <Directory /usr/share/phppgadmin> DirectoryIndex index.php AllowOverride None # Access from everywhere order deny,allow deny from all # allow from 127.0.0.0/255.0.0.0 ::1/128 allow from all # Authorization to access this Webservice <IfModule mod_authn_file.c> AuthType Basic AuthName "Zugriff auf phppgadmin" AuthUserFile /etc/apache2/htpasswd/phppgadmin </IfModule> Require valid-user <IfModule mod_php5.c> php_flag magic_quotes_gpc Off php_flag track_vars On #php_value include_path . </IfModule> <IfModule !mod_php5.c> <IfModule mod_actions.c> <IfModule mod_cgi.c> AddType application/x-httpd-php .php Action application/x-httpd-php /cgi-bin/php </IfModule> <IfModule mod_cgid.c> AddType application/x-httpd-php .php Action application/x-httpd-php /cgi-bin/php </IfModule> </IfModule> </IfModule> </Directory>
Jetzt muss nur noch die Datei mit den Zuganngsdaten angelegt werden:
htpasswd -c /etc/apache2/htpasswd/phppgadmin user1 New password: Re-type new password: Adding password for user user1
Installation von DAViCal aus den Repositories von sid
Quellen: http://www.hirnschmalz.at/2012/09/13/debian-pakete-aus-testing-oder-unstable-verwenden/ und http://linuxaria.com/howto/how-to-install-a-single-package-from-debian-sid-or-debian-testing
Bevor die Installation von DAViCal aus sid erfolgen kann, sind noch folgende Anpassungen an den Konfigurationsdateien von apt erforderlich:
Repository von sid hinzufügen
In der Datei /etc/apt/sources.list müssen die Repositories von sid hinzugefügt werden:
… deb http://ftp.at.debian.org/debian/ sid main non-free contrib deb-src http://ftp.at.debian.org/debian/ sid main non-free contrib
wheezy als Standardrepository festlegen
Es wird eine neue Datei /etc/apt/apt.conf.d/99myDefaultRelease mit folgendem Inhalt erzeugt:
APT::Default-Release "wheezy";
Danach ist ein gefahrloses apt-get update möglich.
Installation von DAViCal
DAViCal mit folgendem Befehl installieren:
apt-get install davical/sid
Dieser Befehl installiert nur davical (und awl) ohne andere bereits installierte Pakete aus wheezy anzutasten. Führt man hingegen apt-get install -t sid davical aus, würde auch eine Update aller von davical abhängigen Pakete auf
Die Ausgabe des Befehls apt-get install davical/sid zeigt schön, was aus wheezy und was aus sid installiert wird:
# apt-get install davical/sid Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut. Statusinformationen werden eingelesen.... Fertig Version »1.1.3.1-1« (Debian:unstable [all]) für »davical« gewählt. # Version »0.55-1« (Debian:unstable [all]) für »libawl-php« gewählt aufgrund von »davical«. Die folgenden zusätzlichen Pakete werden installiert: libawl-php php5 php5-curl Vorgeschlagene Pakete: php5-ldap Die folgenden NEUEN Pakete werden installiert: php5 php5-curl Die folgenden Pakete werden aktualisiert (Upgrade): davical libawl-php 2 aktualisiert, 2 neu installiert, 0 zu entfernen und 3 nicht aktualisiert. Es müssen 468 kB an Archiven heruntergeladen werden. Nach dieser Operation werden 362 kB Plattenplatz zusätzlich benutzt. Möchten Sie fortfahren [J/n]? J Holen: 1 http://security.debian.org/ wheezy/updates/main php5-curl amd64 5.4.35-0+deb7u2 [29,4 kB] Holen: 2 http://security.debian.org/ wheezy/updates/main php5 all 5.4.35-0+deb7u2 [1.024 B] Holen: 3 http://ftp.at.debian.org/debian/ sid/main davical all 1.1.3.1-1 [339 kB] Holen: 4 http://ftp.at.debian.org/debian/ sid/main libawl-php all 0.55-1 [98,5 kB] Es wurden 468 kB in 0 s geholt (1.572 kB/s). Lese Changelogs... Fertig Vormals nicht ausgewähltes Paket php5-curl wird gewählt. (Lese Datenbank ... 42388 Dateien und Verzeichnisse sind derzeit installiert.) Entpacken von php5-curl (aus .../php5-curl_5.4.35-0+deb7u2_amd64.deb) ... Vormals nicht ausgewähltes Paket php5 wird gewählt. Entpacken von php5 (aus .../php5_5.4.35-0+deb7u2_all.deb) ... Vorbereitung zum Ersetzen von davical 1.1.1-1 (durch .../davical_1.1.3.1-1_all.deb) ... Ersatz für davical wird entpackt ... Vorbereitung zum Ersetzen von libawl-php 0.53-1 (durch .../libawl-php_0.55-1_all.deb) ... Ersatz für libawl-php wird entpackt ... Trigger für libapache2-mod-php5 werden verarbeitet ... [ ok ] Reloading web server config: apache2. php5-curl (5.4.35-0+deb7u2) wird eingerichtet ... Creating config file /etc/php5/mods-available/curl.ini with new version php5 (5.4.35-0+deb7u2) wird eingerichtet ... libawl-php (0.55-1) wird eingerichtet ... davical (1.1.3.1-1) wird eingerichtet ... Trigger für libapache2-mod-php5 werden verarbeitet ... [ ok ] Reloading web server config: apache2.
Datenbankkonfiguration
Quelle: http://www.davical.org/installation.php
Um die entsprechenden Datenbanken für DAVICal im Datenbankserver postgresql anzulegen, muss noch folgende Anpassung in der Datei /etc/postgresql/9.1/main/pg_hba.conf durchgeführt werden:
… # This file controls: which hosts are allowed to connect, how clients # are authenticated, which PostgreSQL user names they can use, which # databases they can access. Records take one of these forms: # # local DATABASE USER METHOD [OPTIONS] # host DATABASE USER ADDRESS METHOD [OPTIONS] # hostssl DATABASE USER ADDRESS METHOD [OPTIONS] # hostnossl DATABASE USER ADDRESS METHOD [OPTIONS] local davical davical_app trust local davical davical_dba trust …
Damit ist es möglich mit den den beiden Benutzernamen davical_app und davical_dba auf die postgresql-Datenbank davical vom lokalen Server aus zuzugreifen.
Anpassungen bei Verwendung von postgresql9.x
Quelle: http://mergy.org/2011/11/fixing-davical-and-postgresql-on-ubuntu-11-10/
Verwendet man postgresql in der Version 9.x sind weitere Anpassungen vor dem Start der Datenbankkonfiguration notwendig.
postgresql 9.x kann auch auf Port 5433 arbeiten (postgresql 8.x arbeitet noch auf Port 5432!).
Ist dies der Fall muss in der Datei /usr/share/davical/dba/update-davical-database folgende Anpassung durchgeführt werden:
… my $dbport = 5433; …
Apache2 Konfiguration
Möglicherweise müssen noch folgende Module aktiviert werden: SSLEngine und RewriteEngine:
# a2enmod ssl # a2enmod rewrite
Danach folgende Konfiguration für eine Virtual Host anlegen:
# 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 cal2.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" php_admin_flag suhosin.server.strip off RewriteEngine On RewriteCond %{REQUEST_URI} !^/$ RewriteCond %{REQUEST_URI} !/.(php|css|js|png|gif|jpg) RewriteRule ^(/principals/users.*)$ /caldav.php$1 [NC,L] </VirtualHost>
Ebenfalls folgende Konfiguration für den DAViCal-Server in der Datei /etc/davical/cal2.example.com-conf.php anlegen (hervorgehoben ist die mögliche Änderung für
<?php $c->domain_name = 'cal2.example.com'; $c->sysabbr = 'davical'; $c->system_name = 'DAViCal CalDAV Server'; $c->admin_email = 'davical@example.com'; $c->pg_connect[] = 'dbname=davical port=5433 user=davical_app'; $c->default_locale = "de_DE";
Schreibe eine Antwort