Installer un serveur WebDAV (iCal) sous Windows


J’explique ici, l’installation d’un serveur webdav hébergé sur une machine sous WindowsXP (le processus devrait sensiblement être le même sous Windows7).
Nous considèrerons que vous avez installé le package XAMPP dans le dossier c:\xampp.
J’entend par Apache2 et Apache, le serveur web Apache dans sa version 2.x
Les différentes étapes :
  1. Création du répertoire servant de stockage aux calendriers iCal
  2. Modification des fichiers de configuration du serveur Apache2
  3. Création d’un compte pour la connexion au serveur WebDav
  4. Test de connexion au serveur WebDav
  5. Publication/abonnement sous iCal et Sunbird
  6. Création d’un compte DynDNS pour rendre son calendrier disponible de n’importe où sans avoir d’IP fixe.

1 – Création du répertoire servant de stockage aux calendriers iCal

Le répertoire root (racine) du serveurApache est c:\xampp\htdocs.
C’est ici que l’on crée les dossiers accessible via l’adresse http://localhost/nom_du_dossier.
Donc, nous allons créer un dossier « ical » à la racine du serveur web.
C’est dans ce répertoire (ou dossier) que seront stockés tes calendriers !

2 – Modification des fichiers de configuration du serveur Apache

Rendons-nous d’installation du package XAMPP (c:\xampp).
Dans le répertoire  « apache/conf »  se trouve le fichier « httpd.conf » contenant tous les modules chargés par Apache lors de son démarrage. C’est également dans ce même fichier, que l’on peux changer le port du serveur (par défaut, c’est le port 80 mais si dans votre réseau local, vous avez plusieurs serveurs web accessibles depuis l’extérieur, il vous suffit de modifier son port d’écoute par défaut en par ex. : 8080, 8081… Cela nécessitera bien évidemment des paramétrages au niveau de votre router)
Rendez-vous, dans le répertoire « extra » et fais une copie de sauvegarde du fichier « httpd-dav.conf » (en le selectionnant et en faisant Ctrl+C, puis Ctrl+V) et ouvrez le avec votre éditeur de texte (bloc-note ou l’excellent et gratuit Notepad++).
Recherchez la ligne suivante (la ligne 18 normalement) et ajoutez un #, comme indiqué ci-dessous, pour la marquer comme un commentaire :
#Alias /webdav « C:/xampp/webdav »
Remplaces la ligne ci-dessus, donc, par la ligne suivante (faites un copier/coller pour éviter les fautes de frappe) :
Alias /ical « C:/xampp/htdocs/ical »
Cherchez la ligne suivante et ajoutez également un #, comme indiqué ci-dessous, pour la marquer comme un commentaire :
#<Directory « C:/xampp/webdav »>

Remplaces la ligne ci-dessus, donc, par la ligne suivante (faites un copier/coller pour éviter les fautes de frappe) :

#<Directory « C:/xampp/htdocs/ical »>
Cherchez la ligne suivante :
AuthUserFile « C:/xampp/security/htpasswd.webdav »
Cette ligne indique l’endroit où se trouve le fichier contenant le compte autorisé à se connecter via WebDAV au répertoire iCal que vous venez de créer.
Ceci fait, il ne reste plus qu’à créer un fichier crypté en md5 grâce à la commande htpasswd.

3 – Création d’un compte pour la connexion au serveur WebDav

En regardant de plus près le fichier « httpd-dav.conf »  que vous vennez de modifier, vous remarquerez qu’entre les balises <Directory> et </Directory>, nous trouvons la manière dont on peut se connecter au répertoire « ical » reçu en paramètre de <Directory>.
Ainsi, pour créer le compte utilisateur autorisé à se connecter en lecture/écriture :
  • Cliquez sur le menu démarrer/Executer : tapez « cmd » puis cliques sur « Ok ».
  • Tapez la commande suivante : c:\xampp\apache\bin\htpasswd –c c:/ical.webdav ical (n’hésitez pas à copier/coller cette commande pour éviter les erreurs!)
  • On vous demande alors de taper un mot de passe deux fois : on choisira le mot de passe « amiga » dans notre exemple.
  • Récupérez le fichier « ical.webdav » dans « C: » et plaçons-le dans le répertoire C:\xampp\security.

Je vous rappelle que si vous avez installé votre package XAMPP sur le disque D:\ par ex. adaptez les commandes mentionnées en conséquence.

4 – Test de connexion au serveur WebDav

Tout d’abord, redémarrer le service Apache : soit via l’interface XAMPP, ou en lançant la commande (menu Démarrer/executer) « services.msc » puis en faisant un clic-droit/redémarrer sur « Apache2 ».
Pour tester la connexion à votre nouveau serveur WebDav, vous pouvez  utiliser plusieurs logiciels : Directory Opus 8 (Un logiciel d’origine Amiga et qui dans sa version Windows remplace très très avantageusement l’Explorateur Windows de Microsoft), Dreamweaver, l’Explorateur Windows, Safari, Firefox…)
Sous l’Explorateur Windows :
Double-cliquez sur le Poste de Travail et choisissez le menu « Outil/Connecter un lecteur Reseau ».
Choisissez « ouvrir une session de stockage en ligne ou se connecter à un serveur reseau »
vous obtenez une fenêtre qui s’ouvre : faites SUIVANT et encore SUIVANT. Entrez l’adresse de votre dossier  webdav, dans notre exemple « http://127.0.0.1/ical/ » (127.0.0.1 : adresse IP équivalente à localhost, désigne votre serveur local).
Une fenêtre s’ouvre alors et vous demande votre nom d’utilisateur et votre mot de passe.
En suivant notre exemple ce sera donc respectivement : ical et amiga (faites attention à la casse!).
Vous vous retrouvez avec votre dossier webdav, accessible de n’importe où et selon vos autorisations.

5 – Publications/abonnement sous iCal et Sunbird

La publication :
Avec le logiciel Mozilla Sunbird, créons un nouvel agenda en local :
Dans l’onglet « agenda » faites menu Fichier puis Nouvel agenda. choisissez « sur mon ordinateur », définissons un nom (par ex. steeve) et une couleur et voilà.
Allez dans le menu Fichier et Publier l’agenda. Choisissez l’agenda que vous venez de créer, faites OK. Là on vous demande l’url de votre serveur : « http://127.0.0.1/ical/steeve.ics » .
Cliquez sur PUBLIER. On vous demande un nom et un mot de passe donc comme toujours (ical et amiga), ensuite cliquez sur FERMER.
Sur Outlook 2007 :
Dans calendrier : faites un clique droit sur le calendrier que vous souhaitez partager puis sélectionnez « publiez sur Internet » puis « publiez sur le serveur WebDAV »
Dans la fenêtre qui s’ouvre alors, entrez l’adresse de votre serveur et cliquez sur « Paramètres avancés » et décochez « Fréquence de mise à jour », ceci afin de pouvoir mettre à jour vos calendriers quand vous le souhaitez ou quand Outlook vérifie les mises à jours de votre boites
Enfin valider les deux fenêtres et c’est terminé.

Sur Mac (logiciel iCal), créez un calendrier et allez dans le menu « Calendrier / Publier » et choisissez un serveur privé (ou DAV). Entrez l’adresse de votre serveur (dossier inclus comme toujours) et entre le nom et le mot de passe que vous venez de créer.
Vérifiez la publication en utilisant votre nouveau répertoire webcal via l’explorateur windows.
L’abonnement :
Pour vous abonner depuis Sunbird à un calendrier, Allez dans le menu Fichier, puis Nouvel agenda. choisissez « sur le réseau » et entrez l’adresse du calendrier (celui que l’on viens de créer est « http://127.0.0.1/ical/steeve.ics », laissez le format iCalendar, faites SUIVANT et choisissez une couleur et voilà!
Un message vous avertira que votre agenda à été créé !
Pour vous abonner à un calendrier plus simplement remplacez « http » dans l’adresse de votre calendrier, par « webcal », ceci permettra à votre système de comprendre qu’il s’agit d’un abonnement à un calendrier (méthode valable sur tous les systèmes)

6 – Création d’un compte Dyndns pour rendre son calendrier disponible de n’importe où.

Allez sur le site http://www.dyndns.org
Créez un compte, c’est gratuit. Puis allez dans la partie service et Dynamique DNS. Cliquez sur « Create Host »
Choisissez un nom : pour l’exemple on va dire calendrier et comme domaine principale, on allons choisir : homeunix.com.
L’adresse ip renseignée automatiquement est que votre fournisseur d’accès vous a donnée (à vous de régler votre box ou routeur, pour que les transactions sur le port 80 soient redirigé sur votre serveur).
Laissez tout le reste tel quel et cliquez sur  « Add Host ». Votre serveur est à présent accessible depuis n’importe où dans le monde, même sans ip fixe, à l’adresse http://calendrier.homeunix.com/ical !
Dernière chose, puisque votre ip n’est pas fixe, installez et configurez le petit soft DynDNS updater disponible à l’adresse ci-dessous.
Il se chargera de mettre à jour votre compte DynDNS, à chaque changement d’adresse IP.
Pour finir, j’ai utilisé cette solution chez GoodPlanet durant près de 3 ans sans aucun soucis (…enfin presque mais il s’agissait de problèmes de connexion Internet).
En disposant de votre propre serveur WebDAV, vous avez la possibilité (en achetant un disque de taille concéquente) d’avoir un « iDisk » maison pour pratiquement rien et sur lequel vous avez une totale maîtrise.
Cependant, gardez bien en tête qu’en cas de coupure de votre connexion Internet ou du courant, plus rien n’est accessible. Pour un usage personnel c’est largement suffisant mais en milieu professionnel, cela peut poser problème. Dans mon cas, j’ai opté pour l’utilisation d’une machine virtuelle chez Gandi.net (voir post précédent).
Publicités

17 réflexions sur “Installer un serveur WebDAV (iCal) sous Windows

  1. Pingback: 2010 in review : bilan du blog pour l’année 2010 « Serenity Report – l'Informatique Consciente

  2. bonjour,
    j’ai vue hier votre tuto pour creer un serveur de publication de calendrier j’ai ete tres interessé par l’idee et je me suis dit que j’allait m’y mettre tous c’est bien deroulé j’usqu’au moment de la vérification du serveur j’e n’arrive pas a me connecter il me met une erreur comme quoi un peripherique attaché au systeme ne fonctionne pas bien pour que je puisse saisir le mot de passe et l’identifiant j’ai du changer « http » en « https » car en http il met erreur tous de suite enfete dans les deux cas il met nom de reseau introuvable pourtant j’ai tous bien fait j’ai verifier le fichier httpd tous est ok j’ai verifier le fichiers qu’ont doit modifier je pense avoir bien fait aussi mais je n’arrive pas a me connecter merci de votre aide

  3. Bonjour,
    j’ai voté « pas terrible ». Ce que tu décris fonctionne, cependant, ce n’est pas très propre. J’ai suivi que ce que tu préconises jusqu’à un certain point. En fait, je n’ai touché à httpd.conf que pour activer les modules nécessaires pour le fichier de conf de webdav, ainsi que pour activer le fichier de conf en question (en enlevant des commentaires). J’ai regardé les IfModule présents, et j’ai activé les modules correspondants. Je stocke mes calendriers dans le dossier webdav, pas dans htdocs, et ça fonctionne très bien. Je pense que tu devrais modifier ton article en ce sens, je suis à ta disposition si tu as besoin de précisions.

    • Salut Grégoire,
      J’ai volontairement proposé d’utiliser un autre dossier pour montrer qu’on peut le faire et que c’est relativement simple.
      Je comprend ton point de vue concernant l’utilisation du répertoire par défaut webdav. Ca permet de séparer le contenu web et les calendriers.
      Est-ce que cela peut éviter certains problèmes, je ne sais pas (en terme de sécurité probablement).
      Pourrais-tu nous éclairer sur le pourquoi il serait plus propre d’utiliser le dossier webdav par défaut ?
      Merci d’avance pour tes lumières.

      • Salut,
        la sécurité serait effectivement le principal problème. Webdav est un module permettant l’écriture, ce qu’apache par défaut ne fait pas.
        Le bout qui me gêne le plus, c’est ceci :

        ——–
        Cherchez la ligne suivante et ajoutez également un #, comme indiqué ci-dessous, pour la marquer comme un commentaire :
        #
        Remplaces la ligne ci-dessus, donc, par la ligne suivante (faites un copier/coller pour éviter les fautes de frappe) :
        #
        ——–

        Tu fais commenter la balise Directory. Ça veut dire que toutes les directives qui sont dedans vont s’appliquer partout (pas juste dans le dossier spécifié). Je ne me souviens plus quelles sont ces directives et je ne peux pas vérifier facilement, mais si elles ont été restreintes à un répertoire, c’est sûrement pour une bonne raison. Peut-être donnes-tu des droits d’écriture sur Le DocumentRoot. Ça veut dire que quelqu’un qui a un mot de passe pour le calendrier peut aussi éditer le site web, ce qui représente une faille.
        Autre problème, tu ne fais pas commenter la balise fermante, donc ça va donner quelque chose de syntaxiquement invalide, mais tes lecteurs auront sans doute corrigé d’eux-mêmes.
        Enfin, tu fais changer le contenu de la balise commentée, ce qui ne sert pas.

        Dans mon cas d’utilisation, je n’utilise pas le DocumentRoot, le serveur ne sert que les calendriers, donc je n’ai pas besoin de créer un répertoire en plus ce qui fait que ta solution me paraît compliquée. Cependant, si jamais quelqu’un à besoin de créer plusieurs dossiers gérés par WebDav mais ayant des droits différents, ça peut être intéressant.

  4. Bonjour, j’ai suivi votre tuto à la lettre et ça ne marche pas :S quand je veux aller connecter mon dossier il me dit : Le dossier que vous avez entré ne semble pas être valide. Choisissez-en un autre. J’utilise windows 7.

    Aussi je ne sais pas trop où je dois mettre mon user/mdp en md5… dans le fichier webdav.htpasswd?

    J’attend votre réponse (le plus vite possible svp :S, le patron attend après moi :P)

    Merci,

      • Bonjour fufu0909
        désolé j’ai laissé tombé ce blog (trop peu de temps par rapport à mon boulot et au reste)
        je ne comprend pas pourquoi tu dois mettre du ssl alors que selon le tuto il n’y en a pas.
        Sinon pour l’authentification, le fichier htpassword doit être là »C:/xampp/security/htpasswd.webdav” ».
        Quand j’ai un soucis d’authentification il m’arrive de regénérer le password md5 (ne me demande pas pourquoi ça marche pas du premier coup, c’est une simple constatation de ma part d’après mon expérience).
        Ensuite as-tu regardé le commentaire de Gregoir qui me fait part de certaines erreurs dans mon tuto qui risque de ne pas faire fonctionner webdav ?
        Encore désolé pour le temps de réponse!!!!

  5. Bonjour

    Et merci pour le tuto. Je viens d’effectuer la manip sur un Server 2008 R2. Xampp est correctement installé dessus et sécurisé. Apache 2.4 est running dans mes services.

    J’ai pourtant un problème lorsque je veux effectivement partager un agenda Outlook d’un client LAN sur le serveur webdav (ce qui est mon but ultime en fait). L’URL du serveur webdav est joignable par mes clients réseau via leur browser (http ou https://ipserveur/ical et moyennant un MDP bien sûr). Le serveur est donc bien en place. Mais lorsque je veux partager l’agenda dans Outlook, il me dit : « Echec du téléchargement du calendrier « Calendrier » (on fait ce qu’on peut pour les noms…^^). Un problème est survenu avec la requête ».

    Une idée ?

    Un énoooorme merci d’avance 😉

    • Salut
      Tout d’abord je suis en vacance et donc j’aurai difficilement acces au net.
      Cependant deja ce que je ferai :
      Tenter l’operation avec un autre client (thunderbird par ex)
      Ceci permet de savoir si c’est un prob d’Outlook ou de la config)
      Ensuite si c’est outlook il faudraot voir la version utilisé et verifier si Microsoft n’a pas crée de nouvelle specificité qui necessiterai une modification dans les param d’Apache.
      par ex Outlook 2010 ne peut de memoire se connecter en Exchange avec un sbs 2003 donc on sait jamais)
      Regarde ca et sinon les logs d’apache aussi.
      Tiens moi au courant et bonne chance!

  6. Bonjour,
    je suis sous win7 pro avec la version 1.8.3 de XAMPP
    Moi je bloque au niveau de la création d’un compte pour la connexion au serveur WebDav
    Voici la copie de mon écran :

    C:\Users\TICE>c:\xampp\apache\bin\htpasswd -c c:/ical.webdav ical
    Usage:
    htpasswd [-cimBdpsD] [-C cost] passwordfile username
    htpasswd -b[cmBdpsD] [-C cost] passwordfile username password

    htpasswd -n[imBdps] [-C cost] username
    htpasswd -nb[mBdps] [-C cost] username password
    -c Create a new file.
    -n Don’t update file; display results on stdout.
    -b Use the password from the command line rather than prompting for it.
    -i Read password from stdin without verification (for script usage).
    -m Force MD5 encryption of the password (default).
    -B Force bcrypt encryption of the password (very secure).
    -C Set the computing time used for the bcrypt algorithm
    (higher is more secure but slower, default: 5, valid: 4 to 31).
    -d Force CRYPT encryption of the password (8 chars max, insecure).
    -s Force SHA encryption of the password (insecure).
    -p Do not encrypt the password (plaintext, insecure).
    -D Delete the specified user.
    On other systems than Windows and NetWare the ‘-p’ flag will probably not work.
    The SHA algorithm does not use a salt and is less secure than the MD5 algorithm.

    C:\Users\TICE>C:\xampp\apache\bin\htpasswd-c C:/ical.webdav ical
    ‘C:\xampp\apache\bin\htpasswd-c’ n’est pas reconnu en tant que commande interne
    ou externe, un programme exécutable ou un fichier de commandes.

    C:\Users\TICE>c:\xampp\apache\bin\htpasswd -c c:\ical.webdav ical
    Usage:
    htpasswd [-cimBdpsD] [-C cost] passwordfile username
    htpasswd -b[cmBdpsD] [-C cost] passwordfile username password

    htpasswd -n[imBdps] [-C cost] username
    htpasswd -nb[mBdps] [-C cost] username password
    -c Create a new file.
    -n Don’t update file; display results on stdout.
    -b Use the password from the command line rather than prompting for it.
    -i Read password from stdin without verification (for script usage).
    -m Force MD5 encryption of the password (default).
    -B Force bcrypt encryption of the password (very secure).
    -C Set the computing time used for the bcrypt algorithm
    (higher is more secure but slower, default: 5, valid: 4 to 31).
    -d Force CRYPT encryption of the password (8 chars max, insecure).
    -s Force SHA encryption of the password (insecure).
    -p Do not encrypt the password (plaintext, insecure).
    -D Delete the specified user.
    On other systems than Windows and NetWare the ‘-p’ flag will probably not work.
    The SHA algorithm does not use a salt and is less secure than the MD5 algorithm.

    C:\Users\TICE>C:\xampp\apache\bin\htpasswd -c C:/ical.webdav ical
    Usage:
    htpasswd [-cimBdpsD] [-C cost] passwordfile username
    htpasswd -b[cmBdpsD] [-C cost] passwordfile username password

    htpasswd -n[imBdps] [-C cost] username
    htpasswd -nb[mBdps] [-C cost] username password
    -c Create a new file.
    -n Don’t update file; display results on stdout.
    -b Use the password from the command line rather than prompting for it.
    -i Read password from stdin without verification (for script usage).
    -m Force MD5 encryption of the password (default).
    -B Force bcrypt encryption of the password (very secure).
    -C Set the computing time used for the bcrypt algorithm
    (higher is more secure but slower, default: 5, valid: 4 to 31).
    -d Force CRYPT encryption of the password (8 chars max, insecure).
    -s Force SHA encryption of the password (insecure).
    -p Do not encrypt the password (plaintext, insecure).
    -D Delete the specified user.
    On other systems than Windows and NetWare the ‘-p’ flag will probably not work.
    The SHA algorithm does not use a salt and is less secure than the MD5 algorithm.

    C:\Users\TICE>c:\xampp\apache\bin\htpasswd -c c:/ical.webdav ical
    Usage:
    htpasswd [-cimBdpsD] [-C cost] passwordfile username
    htpasswd -b[cmBdpsD] [-C cost] passwordfile username password

    htpasswd -n[imBdps] [-C cost] username
    htpasswd -nb[mBdps] [-C cost] username password
    -c Create a new file.
    -n Don’t update file; display results on stdout.
    -b Use the password from the command line rather than prompting for it.
    -i Read password from stdin without verification (for script usage).
    -m Force MD5 encryption of the password (default).
    -B Force bcrypt encryption of the password (very secure).
    -C Set the computing time used for the bcrypt algorithm
    (higher is more secure but slower, default: 5, valid: 4 to 31).
    -d Force CRYPT encryption of the password (8 chars max, insecure).
    -s Force SHA encryption of the password (insecure).
    -p Do not encrypt the password (plaintext, insecure).
    -D Delete the specified user.
    On other systems than Windows and NetWare the ‘-p’ flag will probably not work.
    The SHA algorithm does not use a salt and is less secure than the MD5 algorithm.

    Par ailleurs, dans httpd-dav.conf, le # devant # est-il nécessaire car dans la ligne d’origine à remplacer, il n’y en avait pas ce qui fait que l’ancienne ligne et sa remplaçante deviennent toutes deux des commentaires.

    Comme je suis néophyte débutant (;-) je me renseigne.

    Merci pour ton travail et peut-être encore plus pour ton aide.

    David

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s