Howto davical gentoo

Aus 4-it
Version vom 19. Februar 2012, 22:56 Uhr von Djamc (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „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 entsprech…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

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.