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.
Auswahl des sunrise-repositories:
layman -f layman -a sunrise
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
Es gibt kleine Fehler mir dem AWL-patch:
/var/lib/layman/sunrise/www-apps/davical/files/awl_location.patch
+AWL_LOCATION="/usr/share/php/awl/inc"
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.