Howto davical gentoo
Hier entsteht eine Howto zum caldav- und carddav-Server davical auf einem NGINX-httpd:
Zur Zeit ist dies nur eine Installationslog, die zeitnah in eine entsprechende, würdigere Form umgewandelt wird.
USE-Flags:
php: +curl +calendar +postgres +pdo
(current: fpm gd cgi force-cgi-redirect bzip2 cli crypt ftp iconv imap session ssl threads zlib -apache2 bcmath cjk ctype flatfile mysql mysqli posix sockets truetype unicode xml zip)
emerge davical
Anbindung POSTGRES-Server:
Das Script create-database.sh unter /usr/share/webapps/davical/1.0.2/sqlscripts
ruft mehrmals psql und changedb auf. Hier muss ggf. -U postgres als Parameter eingefügt werden.
Die htdocs liegen /usr/share/webapps/davical/1.0.2/htdocs. in der Readme wird angeführt, dass aus Sicherheitsgründen einige Funktionssourcen in andere Verzeichnise verschoben wurden.
Da bei einem nginx-server die webapp-logik nicht funktioniert, wird in der folgenden Config auch der originale Pfad des Emerge-Prozesses verwendet. Dafürm muss das Verzeichnis davical im hostroot (/usr/share/webapps/davical/1.0.2/hostroot) in den Ordner /usr/share/webapps/davical kopiert werden (in der PHP-Source ist das include durch ../../*inc angegeben)
nginx-Config
server {
listen ip:443;
server_name cloud.4-it.de;
ssl on;
ssl_certificate <crt>;
ssl_certificate_key <key>;
root /usr/share/webapps/davical/1.0.2/htdocs;
index index.php index.html;
access_log <log-dest> main;
error_log <log2-dest> info;
keepalive_timeout 0;
location /images/ {
access_log off;
expires max;
}
location ~ ^(.+\.php)(.*)$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass_header AUTHORIZATION;
fastcgi_pass phpserver:99999;
fastcgi_param HTTPS on;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_read_timeout 180;
fastcgi_buffers 4 256k;
fastcgi_buffer_size 128k;
}
location ~ \.php {
include /etc/nginx/fastcgi_params;
fastcgi_param HTTPS on;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass_header AUTHORIZATION;
fastcgi_pass phpserver:99999;
}
}
Für das Thunderbird-plugin zur Address-Syncronisation ist der /etc/davical/config.php folgendes hinzuzufügen:
$c->use_old_sync_response_tag = true;
Postgres 9.1 stellt sich ein wenig schwer, vom nginx-prozess die Passwortlosen Anfragen zu verarbeiten, daher ist in dem pg_connect-String folgende Parameter anzugeben:
dbname=<davicaldb> port=99998 host=dbhost user=davical_dba password=IAmAPassword
Sync-Einstellungen:
Der/Die Kalender dürfen keinen Slash (/) am Ende der URL enthalten (bisher aufgefallen bei Thunderbird Lightning)
Für CARDDAV Sync free muss die komplette URL angegeben werden. Die einzelnen Adressbücher werden nicht automatisch bei Eingabe des Hosts erkannt. Mittlerweile reicht die Angabe des Pfades + Userverzeichnis: https://caldavserver/caldav.php/USERNAME