Gedächtnisstützen IT

Konfiguration, Server, Unix/Linux

Installation von DAViCal aus Debian sid unter Debian 7 (wheezy)

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 sid-Versionen erfolgen.
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 postgresql Version 9.x! Ohne diese Angabe wird standardmäßig auf Port5432 der Version 8.x verbunden):

<?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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.