Le système DAV de FREEDOM gère deux serveurs WebDAV :
Lors de la modification de fichiers par l'interface Web, l'éditeur de fichier utilise le serveur WebDAV authentifié par n° de session. L'adresse de ce serveur WebDAV doit être précisé dans le paramètre applicatif FREEDAV_SERVEUR. L'adresse du deuxième serveur doit être renseigné dans le paramètre WEBDAV_SERVEUR.
Ces deux serveurs doivent avoir deux noms distincts du nom de la machine pour l'accès à l'interface web. Ces deux noms désignent la même machine (alias DNS) que le serveur WEB.
Le serveur Web Apache doit être configuré pour avoir deux hôtes virtuels (virtualhost) correspondant aux deux serveurs DAV.
Le navigateur Web ne peut pas nativement exécuter un autre programme. Pour autoriser votre navigateur à ouvrir les éditeurs vous devez installer deux fichiers sur votre poste client 'opendav.reg' et 'opendav.vbs' :
Pour enregistrer le protocole pour le navigateur, il faut double-cliquer sur l'icone du fichier 'opendav.reg' que vous avez téléchargé. Ensuite il faut enregistrer le fichier 'opendav.vbs' dans le répertoire C:\WINDOWS.
Après cette manipulation à partir de votre navigateur Internet Explorer ou Firefox, vous pouvez éditer et enregistrer les fichiers comme s'ils étaient sur votre disque dur.
Lorsque vous cliquez sur le lien ' Ouvrir dans un éditeur', une interface vous demande de choisir le programme capable de lire le fichier. Pour enregistrer le fichier sur le serveur, une fois les modifications effectuées, il suffit d'utiliser le menu enregistrer de l'éditeur comme d'habitude
Il est également possible de connecter un lecteur réseau qui permettra d'accéder à Dynacase-platform comme à un accès réseau partagé, cela peut être pratique pour l'ajout simultané de nombreux fichiers, que l'on pourra par la suite, enrichir en métadonnées.
Notes
Dans firefox, entrez l'URL : about:config Ajouter les options suivantes :
nom : network.protocol-handler.external.asdav valeur : true
nom : network.protocol-handler.app.asdav valeur : freedom-opendav.sh
Dans un répertoire de votre path (accessible par $PATH lors du lancement du navigateur)
gconftool-2 -s /desktop/gnome/url-handlers/asdav/command '/path/to/app %s' --type String gconftool-2 -s /desktop/gnome/url-handlers/asdav/enabled --type Boolean true
Créer le fichier de commande freedom-opendav.sh
#!/bin/bash np=`echo $1 | sed "s/asdav:/http:/"` ooffice "$np"
Ce fichier doit être exécutable.
Il reçoit en argument l'URL du fichier à éditer. Cette URL est une ressource asdav: qui doit être transformé en http: et être fournie à l'éxécutable Open Office.
Ce script lance simplement openoffice avec le fichier du serveur WebDAV.
Si la configuration n'est pas correcte, vous allez rencontrer ce message :
Si tout fonctionne correctement, vous allez avoir cette fenêtre :
Dans le profil de Firefox (ex : /home/toto/.mozilla/firefox/5i4imfkt.default), il faut créer ou modifier le fichier « user.js » et ajouter ces deux lignes :
user_pref("network.protocol-handler.app.asdav", "freedom-opendav.sh");
user_pref("network.protocol-handler.external.asdav", true);
Dans le dossier d'installation de Firefox (ex : /opt/firefox/defaults/pref), il faut créer le fichier « all-freedom-dav.js » et ajouter ces deux lignes :
pref("network.protocol-handler.app.asdav", "freedom-opendav.sh");
pref("network.protocol-handler.external.asdav", true);
Télécharger et installer l'application Asdav.app :
L'application Asdav.app permet d'ouvrir les URLs `asdav:' de Dynacase-platform avec OpenOffice, et donc d'éditer en ligne tous les types de fichiers supportés par celui-ci.
Asdav.app utilisera en premier OpenOffice.org.app, et si celui-ci n'est pas disponible il utilisera NeoOffice.org.app.
Note pour les utilisateurs sous Mac OS X Tiger (10.4)
OpenOffice.org.app 3.0.0 comporte un petit bug qui le rend inutilisable lorsqu'il est lancé par Asdav.app (c.f. http://www.openoffice.org/issues/show_bug.cgi?id=93731)
Pour contourner ce problème, il faut éditer le fichier `/Applications/OpenOffice.org.app/Contents/Info.plist' et changer la valeur de la clef `CFBundleExecutable' par `soffice.bin' :
[...] <key>CFBundleExecutable</key> <string>soffice.bin</string> [...]
Note: ce problème doit être à présent résolu à partir de OpenOffice.org 3.0.1
Le module `freedom-dav' nécessite sa propre base de donnée, et le service Postgresql associé.
Une fois ces éléments créé, vous pouvez lancer l'installation de `freedom-dav' et rentrer le service Postgresql créé précédemment lorsque celui-ci sera demandé par Dynacase-control.
Une fois installé, l'utilisation de la fonction DAV nécessite la création de deux configurations Apache à base de VirtualHosts. Comme cette conf n'est pas accessible et réalisable par Dynacase-control, vous devrez insérer les configurations données ci-dessous dans la configuration de votre serveur Apache.
Il est nécessaire d'avoir installé avec dynacase-control une version de Dynacase-platform >=2.13 pour faire fonctionner cette version de freedom-dav :
Le module freedom-dav nécessite la création d'une base de données spécifique pour son fonctionnement :
[root@server ~]# su postgres [postgres@server ~]# psql postgres=# CREATE DATABASE webdav OWNER freedomowner;
[root@server ~]# more $PGSYSCONFDIR/pg_service.conf [webdav] host=localhost port=5432 user=freedomowner password=password dbname=webdav
Ce module nécessite en pré-requis l'activation du module “rewrite” :
a2enmod rewrite /etc/init.d/apache2 restart
Dans Dynacase-control, il faut installer le module “freedom-dav” :
et indiquer dans les paramètres le nom de service Postgresql créé précédemment :
Une fois l'installation terminée, il est possible de vérifier que la base de données webdav est correctement initialisée :
# su postgres
postgres@fcnet:/root$ psql webdav
...
webdav=# \dt
List of relations
Schema | Name | Type | Owner
--------+------------+-------+-------------
public | locks | table | freedomrole
public | properties | table | freedomrole
public | sessions | table | freedomrole
(3 rows)
Pour utiliser les fonctions d'édition et de montage WebDAV, vous devez mettre en place deux VirtualHosts Apache.
Pour cela, il vous faut déclarer deux noms DNS additionnels qui pointeront vers votre serveur Freedom.
Exemple
Soit un serveur Freedom installé par Dynacase-control le répertoire `/var/www/ged', et accessible par l'enregistrement DNS `ged.example.net'.
Vous pouvez créer deux enregistrements DNS `ged-freedav.example.net' et `ged-webdav.example.net' qui pointeront vers `ged.example.net'
ged-freedav IN CNAME ged.example.net. ged-webdav IN CNAME ged.example.net.
Dans ce cas, les configurations associées seront :
Fichier de configuration `/etc/apache2/sites-available/default-freedav'
<VirtualHost *:80>
ServerName ged-freedav.example.net
DocumentRoot /var/www/ged/freedav
<Directory /var/www/ged/freedav/>
Order allow,deny
Allow from All
DirectoryIndex index.php
Options FollowSymLinks
AllowOverride All
</Directory>
ErrorLog /var/log/apache2/freedav.error.log
</VirtualHost>
Activer la configuration
# a2ensite ged-freedav # /etc/init.d/apache2 restart
Fichier de configuration `/etc/apache2/sites-available/ged-webdav'
<VirtualHost *:80>
ServerName ged-webdav.example.net
DocumentRoot /var/www/ged/webdav
<Directory /var/www/ged/webdav/>
Order allow,deny
Allow from All
DirectoryIndex index.php
Options FollowSymLinks
AllowOverride All
</Directory>
ErrorLog /var/log/apache2/webdav.error.log
</VirtualHost>
Activer la configuration
# a2ensite ged-webdav # /etc/init.d/apache2 restart
Remarque : Il est possible de vérifier avec votre navigateur que les deux VirtualHost fonctionnent correctement :
Positionner les paramètres applicatif suivants avec les noms DNS associés aux accès FreeDAV et WebDAV :
Le module freedom-dav comporte quatre paramètres accessibles via :
| référence | nom | |
|---|---|---|
| FREEDAV_SERVEUR | adresse du serveur webdav pour freedav | alias de nom de la machine serveur. Le virtual host associé ne doit pas être authentifié |
| WEBDAV_SERVEUR | adresse du serveur webdav pour le serveur authentifié | alias de nom de la machine serveur. Le virtual host associé doit être authentifié |
| WEBDAV_DB | coordonnées d'accès à la base de données webdav | référence la base de données de travail pour le serveur WebDAV |
| WEBDAV_ROOTID | Identifiant du dossier racine pour l'accès authentifié | identifiant du document dossier pour la racine du webdav authentifié. Lors d'un usage combiné avec WORKSPACE, la référence désigne un document recherche simple qui recherche l'ensemble des espaces de travail |
En cas de problème dans la mise en place du module freedom-dav, il est possible d'effectuer différents tests pour identifier la source du problème.
Le client en ligne de commande webdav disponible sous Linux permet de vérifier que la connexion au serveur webdav et au serveur freedav fonctionne correctement :
$ cadaver ged-freedav dav:/>
$ cadaver ged-webdav Authentication required for on server `ged-webdav': Username: admin Password: dav:/> ls Listing collection `/': succeeded. Coll: import 0 sep 17 16:25 Coll: la poubelle 0 sep 17 16:25 Coll: les cycles 0 sep 17 16:25 Coll: les familles 0 sep 17 16:25 Coll: les maisons 0 sep 17 16:25 Coll: les profils 0 sep 17 16:25 dav:/>
En cas de problème, il faut regarder dans les logs du serveur
Avec Konqueror, l'URL suivante permet de se connecter à un serveur Webdav : webdav://ged-webdav
Sous Linux, le paquet “davfs2” permet de monter un partage Webdav dans son système de fichiers. Cela permet d'accéder aux fichiers de freedom en lecture et en écriture comme les fichiers locaux :
mount -t davfs http://ged-webdav /home/tony/webdav/ -o uid=tony,rw,file_mode=700
Sous Windows pour accèder à un partage Webdav, il faut :
Ensuite, les fichiers de freedom seront accessibles en lecture et en écriture et il sera également possible d'en ajouter de nouveaux
Situation : Le document a été chargé en édition avec OpenOffice.org, et celui-ci plante, laissant le document locké au niveau WebDAV
Solution : Identifier l'URL du document (exemple asdav:/ /freedav.example.net/freedav/vid-12765-4870-3a0404dfe29f7c88bb58ac8a6943559d/Foo.odt), et supprimer le lock du document dans la table locks :
# psql -U postgres -d webdav \
-c "DELETE FROM locks WHERE path = '/freedav/vid-12765-4870-3a0404dfe29f7c88bb58ac8a6943559d/Foo.odt'"
Il arrive sur certains postes en Windows XP d'avoir des lenteurs d'accès aux documents : les temps d'accès constatés sont d'environ 30 secondes.
Ces problèmes sont inhérents à Windows, il existe 2 solutions possibles pour pallier à ces lenteurs :
Sur votre serveur freedom, installez samba avec aptitude
sudo aptitude install samba sudo /etc/init.d/smbd start
Explication: samba permet d'avoir des services sur le serveur qui répondent sur les ports netbios etc … et permet d'éviter les timeouts des requêtes des postes client.
Cette solution ne marche pas à travers un lien internet car généralement, les ports netbios sont bloqués.
La solution consiste à permuter les fournisseurs d'accès réseau en passant “Web Client Network” avant “Réseau Microsoft Windows”.
Pour cela, allez dans le panneau de configuration puis dans Connexions réseau / Avancé / Paramètres avancés :
Dans l'onglet “Ordre des fournisseurs”, vous placez “Web Client Network” en tête de liste.
Explication: lorsque vous cherchez à accéder à un serveur dav, le fournisseur réseau du dav devient prioritaire sur les autres services réseau, ce qui évite les problématiques de timeouts.
Par contre cale peut potentiellement engendrer d'autres lenteurs pour accéder à d'autres ressources réseau (serveur de fichier, active directory, …).
Cette solution est à appliquer au cas par cas.
Certaines machines de la GED sont lentes car elle cherchent un proxy automatiquement (mécanisme Windows) via le principe de WPAD.
Les machines procèdent dans cette ordre :
C'est le temps que mettent les machines à passer à la dernière étape qui provoque la lenteur. La solution a donc été de paramétré un serveur WPAD sur le réseau.
Un serveur WPAD et un serveur Web qui renvoie un fichier wpad.dat avec les informations correspondant au proxy à utiliser sur le réseau. Il faut donc que http://serveurpad/wpad.dat renvoie quelque chose. Voici le contenu du fichier :
function FindProxyForURL(url, host)
{
return "DIRECT";
}
Ce fichier indique simplement de ne pas utiliser de proxy(DIRECT).
Il faut ensuite donner le mime type du fichier au serveur WEB, dans apache il faut rajouter la ligne :
AddType application/x-ns-proxy-autoconfig .dat
Relancer Apache.
Faire le test en saisissant http://ip_du_serveur/wpad.dat cela doit vous télécharger le fichier.
Il faut maintenant que les machines puissent trouver le serveur WPAD. Dans ce cas le plus simple et de donner WPAD en nom de machine netbios du serveur WEB, on utilise samba avec cette ligne :
netbios name = WPAD
Il est également possible de le faire par le DHCP (à confirmer car lors de nos test c'est le netbios qui était utilisé car la machine était en IP fixe et non dhcp).
Paramétrage du DHCP sous linux (serveur isc-dhcp) : On crée un enregistrement 252 :
option wpad-url code 252 = text;
On rajoute cette option dans la configuration du pool :
subnet 172.17.0.0 netmask 255.255.0.0 {
option subnet-mask 255.255.0.0;
option routers 172.17.0.2;
option broadcast-address 172.17.255.255;
option wpad-url "http://172.17.0.191/wpad.dat";
Désormais les machines trouvent directement le serveur WPAD qui leur répond qu'il n'y a pas de proxy à utiliser.