Installer DavICal sur Plesk 9 et Debian

Posséder un serveur d’agenda partagé(s) est très appréciable voir indispensable quand plusieurs collaborateurs ont besoin de connaitre ou d’avoir accès aux agendas de chacun.

Alors serte il existe Google Agenda mais moi je n’aime pas confié mes informations personnelles à des sociétés refusant les principes de la vie privée, qui sait ce qui peut arriver.

Donc nous allons expliquer ici la procédure à suivre pour installer un serveur Caldav opensource à savoir DAVical.

Nous supposons dans ce tutoriel que le serveur de base de donnée PostgreSQL est déjà installé sur votre serveur.

Installation des packages DAVical pour Debian

  1. Editer le fichier contenant la liste des repository
    [code type= »shell »]~# ssh nomdevotreserveur -l root
    ~# vi /etc/apt/sources.list[/code]

    Ajouter la ligne suivante en début de fichier par exemple :

    [code type= »shell »]deb http://debian.mcmillan.net.nz/debian lenny awm[/code]

  2. Faire la mise à jour de apt
    [code type= »shell »]~# apt-get update[/code]
  3. Lancer l’installation de DAVical
    [code type= »shell »]~# apt-get install davical[/code]
  4. Installez la Base de donnée
    [code type= »shell »]~# su postgres -c /usr/share/davical/dba/create-database.sh[/code]

    ou

    [code type= »shell »]~# su postgres -c /usr/share/davical/dba/create-database.sh NomUtilisateurProprietaire NomDeDatabase[/code]

  5. Modifier la configuration de davical pour la connexion à la DB
    [code type= »shell »]~# vi /usr/share/davical/dba/update-davical-database[/code]

    Modifiez les lignes 16,18,19,20 et 21

    [code type= »shell »]my $dbname = "NomDeDatabase";
    my $dbuser = "NomUtilisateurProprietaire";
    my $dbpass = "VotreMotDePasse";
    my $appuser = "";[/code]

  6. Configurer  DAVical
    [code type= »shell »]~# touch /etc/davical/config.php
    ~# vi /etc/davical/config.php[/code]
    Et copier coller ce qui suit dans le fichier avant de le sauver (esc puis :x)
    [code type= »php »]admin_email = ‘votre@adresse.mail’;
    $c->system_name = "DAViCal CalDAV Server";
    $c->enable_row_linking = true;
    $c->default_locale = fr_FR.UTF-8;
    $c->pg_connect[] = ‘dbname=NomDeDatabase port=5432 user=NomUtilisateurProprietaire password=VotreMotDePasse’;[/code]

Configuration du serveur web

  1. Configurer Apache si vous souhaitez utiliser l’application sur plusieurs nom de domaine (mais niveau Database je sais pas ce que cela donne)
    [code type= »shell »]~# vi  /etc/apache2/sites-available/default[/code]

    Ajouter vers la ligne 31 la ligne suivante

    [code type= »shell »]Alias /cal/ /usr/share/davical/htdocs/[/code]

  2. Configurer votre VirtualHost pour le domaine ou l’URL que vous utiliserez pour vous connectez sur le serveur via les applications clientes
    Pour des raisons expliquées dans un précédent article sur « Comment faire un Wilcard domaine avec plesk » nous utiliserons un fichier différent de celui utilisé par le Plesk Panel.
    [code type= »shell »]~# touch /var/www/vhosts/VotreNomDeDomaine/conf/vhost.conf
    ~# vi /var/www/vhosts/VotreNomDeDomaine/conf/vhost.conf[/code]

    Ajouter les lignes suivantes :

    [code type= »shell »]Alias /cal/ /usr/share/davical/htdocs/
    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"[/code]

    Puis pour que apache prenne les modifications en compte

    [code type= »shell »]~# /usr/local/psa/admin/sbin/websrvmng –reconfigure-vhost –vhost-name=VotreNomDeDomaine[/code]

Configurer les postes clients

  1. Cas de iCal sur MAC
  2. Sunbird sous Windows XP

Retrouver votre mot de passe Administrateur

Si vous vous retrouvez dans l’impossibilité de récupérer votre mot de passe en utilisant le bouton prévu pour ceci (mail non expédié par exemple) alors vous pouvez récupérer le mot de passe temporaire généré par DAVical en consultant le contenu de la table tmp_password

Forcer l’utilisation de HTTPS pour sécurisé votre serveur

Le but sera de rediriger automatiquement les utilisateurs vers l’url en https quand ils tenteront d’accéder à l’url simple.
ex : http://MonNomDeDomaine/cal/ on redirige vers https://MonNomDeDomaine/cal/
Pour ce faire il faut ajouter un fichier .htaccess dans le dossier /usr/share/davical/htdocs/

[code type= »shell »]~# touch /usr/share/davical/htdocs/.htaccess
~# vi /usr/share/davical/htdocs/.htaccess[/code]

Et collez les lignes suivantes et enregistrez votre fichier

[code type= »shell »]RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}[/code]

Il faut aussi copier votre fichier vhost.conf sous vhost_ssl.conf

[code type= »shell »]~# cp vhost.conf vhost_ssl.conf[/code]

et recharger la configuration apache pour le domaine

[code type= »shell »]~# /usr/local/psa/admin/sbin/websrvmng –reconfigure-vhost –vhost-name=VotreNomDeDomaine[/code]

Supprimer la base de donnée via un accès ssh

  1. Désactiver l’authentification de l’utilisateur postgres ajouté par plesk
    [code type= »shell »]~# ssh nomdevotreserveur -l root
    ~# vi /etc/postgresql/8.3/main/pg_hba.conf[/code]

    et commenter la ligne « local samegroup all password #Added by Plesk » en ajoutant un # au début de la ligne
    sauver le fichier en (esc puis :x)

  2. Re-démarrer le service postgres
    [code type= »shell »]~# /etc/init.d/postgresql-8.3 restart[/code]
  3. Changer de compte utilisateur
    [code type= »shell »]~# su – postgres[/code]
  4. Faire un drop de la base de donnéee
    [code type= »shell »]~# dropdb NomDeDatabase[/code]
  5. Remettre l’authentification plesk
    [code type= »shell »]~# vi /etc/postgresql/8.3/main/pg_hba.conf[/code]

    puis supprimer le # en début de ligne  « local samegroup all password #Added by Plesk »

  6. Re-démarrer le service postgres
    [code type= »shell »]~# /etc/init.d/postgresql-8.3 restart[/code]

Backuper/restaure la base de donnée via un accès ssh

  1. Désactiver l’authentification de l’utilisateur postgres ajouté par plesk
    [code type= »shell »]~# ssh nomdevotreserveur -l root
    ~# vi /etc/postgresql/8.3/main/pg_hba.conf[/code]

    et commenter la ligne « local samegroup all password #Added by Plesk » en ajoutant un # au début de la ligne
    sauver le fichier en (esc puis :x)

  2. Re-démarrer le service postgres
    [code type= »shell »]~# /etc/init.d/postgresql-8.3 restart[/code]
  3. Changer de compte utilisateur
    [code type= »shell »]~# su – postgres[/code]
  4. Faire un sauvegarde (dump) de votre base de donnée
    [code type= »shell »]~# pg_dump -Fc NomDeDatabase >davical.pgdump[/code]
  5. Restaurer une version de votre base de donnée
    [code type= »shell »]~# createdb –owner NomUtilisateurProprietaire –encoding UTF8 –template template0 NomDeDatabase
    ~# pg_restore -Fc -d NomDeDatabase davical.pgdump[/code]

Si vous souhaitez faire une sauvegarde incrémentale, lisez ceci