Information :
Les opérations décrites ici ont été réalisées sous Ubuntu Server 12.04.4 LTS. Il est possible que certains points ne fonctionnent pas sur des versions plus anciennes (notamment en ce qui concerne l'installation, les paquets davical et libawl ayant manifestement été ajoutés aux dépôts par défaut mi 2013 (suite au crash du serveur principal du développeur de Davical)). Voir les sources de l'article pour plus d'informations quant à une installation différente de celle décrite ici.
Les opérations décrites ici ont été réalisées sous Ubuntu Server 12.04.4 LTS. Il est possible que certains points ne fonctionnent pas sur des versions plus anciennes (notamment en ce qui concerne l'installation, les paquets davical et libawl ayant manifestement été ajoutés aux dépôts par défaut mi 2013 (suite au crash du serveur principal du développeur de Davical)). Voir les sources de l'article pour plus d'informations quant à une installation différente de celle décrite ici.
[*]Installation 2>
La commande suivante permet d'installer le paquet "davical" ainsi que ses dépendances :Code : Tout sélectionner
sudo apt-get install davical
Attention :Davical dépend de Apache, PHP et PostgreSQL. Si ces derniers ne sont pas déjà installés sur le système, PHP et PostreSQL seront automatiquement installés par la commande précédente. Seul Apache n'est pas installé automatiquement avec le paquet "davical". Il faut donc l'installer et le faire fonctionner avec php :
Il semblerait que le paquet Davical ne soit pas à jour dans les dépôts d'Ubuntu (version 1.0.2 sous Ubuntu 12.04.4 contre 1.1.1 sur le dépôt de Davical à l'heure d'écrire ces lignes). Il peut donc être préférable d'ajouter le dépôt officiel dans les sources d'Apt.FIX ME :
Vérifier et indiquer la procédure.Normalement, apache2 et php5 devraient fonctionner correctement maintenant.Code : Tout sélectionner
sudo apt-get install apache2 sudo apt-get install libapache2-mod-php5 sudo a2enmod php5
Pour le vérifier, on peut remplacer le fichier /var/www/index.html par un fichier "index.php" contenant :Et en tapant l'adresse du serveur dans un navigateur web pour vérifier que les infos PHP s'affichent bien.Code : Tout sélectionner
<html> <body> <?php phpinfo(); ?> </body> </html>
En cas de problème, se renseigner sur la mise en place d'un serveur apache2+php5+PostgreSQL (LAPP).
[*]Configuration de la base de données 2>Information :Avant la création de la base de données, il est nécessaire de créer 2 utilisateurs (utilisateurs PostgreSQL, non système) :
Dans le cas décrit ici, la base de données est installée sur le même serveur que Davical et Apache/PHP. Il est tout à fait possible de l'installer sur une autre machine.FIX ME :
Expliquer comment configurer dans ce cas.- davical_dba : propriétaire de la base de données et des tables ;
- davical_app : utilisateur connecté depuis l'interface web
[*]Si la base de données est sur la même machine que Davical et Apache 3>
Dans ce cas, les utilisateurs seront connectés localement. Pour les créer, il suffit d'éditer le fichier de configuration de PostgreSQL (/etc/postgresql/X.x/main/pg_hba.conf, avec X.x = numéro de version) en ajoutant les lignes suivantes au tout début du fichier :Enregistrer et relancer le service postgresql :Code : Tout sélectionner
local davical davical_app trust local davical davical_dba trust
Code : Tout sélectionner
sudo service postgresql restart
Attention :
Dans cette configuration, tout utilisateur ayant accès au serveur peut utiliser la base de données en tant que "davical_dba" ou "davical_app".
Cependant, aucun accès distant n'est autorisé pour ces utilisateurs.[*]Si la base de données est sur une machine différente 3>FIX ME :
A remplir
[*]Création de la base de données 2>
Pour créer la base de données, il faut exécuter le script suivant :A la fin de l'exécution du script, le mot de passe du compte 'admin' est indiqué. Il sera nécessaire lors de la première connexion à l'interface d'administration.Code : Tout sélectionner
sudo su postgres -c /usr/share/davical/dba/create-database.sh
[*]Configuration d'Apache 2>[*]Si aucun autre site ne doit être hébergé sur le serveur 3>
Dans ce cas, il suffit de faire un lien entre la racine du site et les pages de Davical :Ensuite, on peut ouvrir le site depuis un navigateur web avec l'adresse suivante : [url]http://<@serveur>/davical/[/url]Code : Tout sélectionner
sudo ln -s /usr/share/davical/htdocs /var/www/davical
[*]Si d'autres sites sont hébergés sur le serveur (virtual host) 3>
Dans ce cas, il faut configurer un hôte virtuel pour le serveur CalDAV. La configuration d'hôtes virtuels sortant du cadre de ce tutoriel, seule la configuration pour Davical sera abordée ici. Pour la configuration d'hôtes virtuels, voir ce tutoriel.
Dans la configuration de l'hôte virtuel, il faut choisir un nom pour le serveur (par exemple «ical.domain.org», ne pas oublier de configurer le DNS en conséquence). Il faut également faire pointer la directive DocumentRoot vers /usr/share/davical/htdocs (chemin par défaut de Davical).
Un alias vers le répertoire «images» est également mentionné dans la documentation officielle, cependant, aucun dysfonctionnement n'a été constaté en cas d'omission. Il est toutefois préférable de suivre les instructions de la documentation, en créant l'alias /images/ vers /usr/share/davical/htdocs/images/.
Il faut également configurer les droits d'accès au répertoire de Davical avec la directive «AllowOverride None» et en autorisant un accès public («Allow from all»).
Enfin, certaines directives sont requises pour PHP (voir le code ci-dessous).
A la fin, le fichier de configuration de l'hôte virtuel devrait ressembler à ceci :Code : Tout sélectionner
<VirtualHost *:80> ServerAdmin admin@server.com DirectoryIndex index.php index.html ServerName ical.domain.org DocumentRoot /usr/share/davical/htdocs/ Alias /images/ /usr/share/davical/htdocs/images/ <Directory /usr/share/davical/htdocs/> AllowOverride None Order allow,deny Allow from all </Directory> php_value include_path /usr/share/awl/inc php_value magic_quotes_gpc off php_value register_globals off php_value error_reporting "E_ALL & ~E_NOTICE" php_value default_charset "utf-8" </VirtualHost>
[*]Si l'on souhaite activer le chiffrement par SSL (recommandé) 3>
[*]Configuration de Davical 2>[*]Fichier de configuration 3>
A ce niveau, si l'on ouvre la page web "davical" sur le serveur, il est indiqué que le serveur n'est pas configuré. Il reste encore quelques étapes.
Il faut notamment créer le fichier de configuration du serveur. Il doit être situé dans "/etc/davical" :Code : Tout sélectionner
sudo touch config.php
FIX ME :Il s'agit d'un simple fichier php (sans la balise php fermante "?>"), dont le contenu minimum est le suivant :
voir quelle est la différence avec <domain>-conf.phpOn peut également ajouter la localisation pour avoir l'interface dans la langue voulue. Par exemple pour le Français :Code : Tout sélectionner
<?php $c->domain_name = "calendar.example.net"; $c->admin_email = 'admin@example.net'; $c->pg_connect[] = 'dbname=davical port=5432 user=davical_app';
D'autres variables peuvent être définies dans ce fichier, voir la documentation pour plus de détails.Code : Tout sélectionner
$c->default_locale = "fr_FR";
Il devrait normalement être maintenant possible de se connecter à l'interface d'administration ([url]http://<@serveur>/davical/[/url]) avec le login "admin" et le mot de passe obtenu à l'étape 3. Au cas où le mot de passe n'aurait pas été noté, il est possible de le retrouver (tant qu'il n'a pas été changé) avec la commande suivante (le mot de passe se trouve après les **) :Code : Tout sélectionner
sudo -u postgres psql davical -c 'select username, password from usr;'
[*]Interface d'administration 3>Information :L'interface se compose de 4 menus (faisant également office de lien) :
La traduction française n'étant pas complète à l'heure d'écrire ces lignes, les indication suivantes sont issues de l'interface originale, en anglais.- Home : affiche une page expliquant succinctement comment administrer le serveur. Permet aussi de se déconnecter de l'interface d'administration.
- User Functions : permet de voir la liste des utilisateurs, d'en créer de nouveaux et de modifier leurs informations, droits, ...
- Administration : permet de voir des statistiques sur l'installation, l'état du serveur, et la sortie de la fonction phpinfo(). D'autres outils sont proposés mais ils ne sont pas implémentés à l'heure actuelle.
- Help : propose des liens vers différentes ressources d'aide.
[*]Gestion des comptes 2>
Il existe 3 types de comptes dans Davical :- Person : correspond à un utilisateur "normal".
- Resource
- Group
FIX ME :
Trouver à quoi servent les types "Resource" et "Group"[*]Création d'un compte utilisateur 3>
Pour créer un nouvel utilisateur, aller dans le menu "User Functions" et sélectionner "Create Principal".
Renseigner :- Un nom d'utilisateur ("Username")
- Un mot de passe ("Password")
- Le nom complet de l'utilisateur ("Fullname")
- Son adresse e-mail
- Sa langue préférée ("Locale")
- Le format de date utilisé
- Le type de compte ("Principal type", "Person" dans le cas présent)
- Si l'utilisateur doit avoir les droits d'administration de Davical, cocher la case "Administrator"
- Cocher la case "Active", sauf si le compte ne doit pas être activé tout de suite
- Choisir les droits des autres utilisateurs sur le nouvel utilisateur :
- Read :
- Write metadata :
- Write data :
- Override a lock :
- Read access controls :
- Read current user's access :
- Create events/collections
- Delete events/collections
- Write access controls
- Read free/busy information :
- Scheduling: deliver an invitation :
- Scheduling: deliver a reply :
- Scheduling: query free/busy :
- Scheduling: send an invitation :
- Scheduling: send a reply :
- Scheduling: send free/busy :
FIX ME :Pour finaliser la création, cliquer sur "Create".
Trouver à quoi servent les différents droits
[*]Modification d'un compte utilisateur 3>
Le formulaire de modification du compte utilisateur est ensuite affiché. Il reprend les même champs que lors de la création du compte, avec en plus :- La liste des groupes dont l'utilisateur est membre
FIX ME :
On attend la suite !!![*]Création d'une ressource 3>
[*]Création d'un groupe 3>
[*]Gestion des calendriers 2>
[*]Déplacement de la base de données 2>
[*]Déplacement des évènements depuis un client CalDAV 3>
[*]Déplacement de la base de données 3>