Configuration du serveur web

Nous décrivons dans cette section la manière de configurer votre serveur web pour qu'il fonctionne avec Greenstone. Toutes ces précisions sont inutiles à qui utilise la bibliothèque locale sous Windows, car le logiciel fonctionne alors «tel que», sans nécessiter un serveur web.

Nous traiterons à la fois le cas du serveur web Apache, qui est librement disponible pour Windows comme pour Unix (reportez-vous à l'annexe appendix_associated_software pour plus de détails à ce sujet), et des serveurs web «Personal Web Server (PWS)» et «Internet Information Services (IIS)» de Microsoft. PWS est le serveur web standard fourni par Microsoft pour Windows 95/98; IIS est celui des versions 2000 et XP de Windows. Windows NT peut utiliser chacun de ces deux serveurs. La description concernant Apache s'applique aussi à la bibliothèque web, versions Windows comme Unix (bien que nous utilisions les terminologies et chemins d'accès propres à Windows). La section PWS/IIS ne s'applique qu'à la bibliothèque web sous Windows.

Après avoir installé le serveur web, il faut installer Greenstone. Nous supposerons que lors de la procédure d'installation, vous avez choisi l'action par défaut à chaque étape, en cliquant sur le bouton Suivant. Au final, vous disposez d'un répertoire CProgram Filesgsdl contenant le binaire de la bibliothèque web, ainsi que quelques fichiers complémentaires.

Tous les serveurs web utilisent l'URL spéciale «localhost» pour représenter l'ordinateur sur lequel le serveur fonctionne. C'est pourquoi, lors de l'installation d'un serveur web, vous pourrez accéder à vos documents HTML en tapant l'URL http://localhostdans un navigateur. Si votre ordinateur possède un nom dans le DNS (ou système de noms), c'est ce nom qui sera utilisé en lieu et place de «localhost» pour identifier votre ordinateur depuis des sites distants. C'est ainsi que sur l'ordinateur de la bibliothèque numérique de Nouvelle-Zélande, les URL http://nzdl.org et http://localhost sont équivalentes. Si vous tapez http://nzdl.org sur votre ordinateur, vous accéderez au serveur web de la bibliothèque numérique de Nouvelle-Zélande, alors que si vous tapez http://localhost vous accéderez au serveur web de votre propre ordinateur.

Le serveur web Apache

Le serveur web Apache est généralement installé dans le répertoire C:\Program Files\Apache Group\Apache, et il est configuré de sorte que son répertoire cgi-bin soit dans le sous-répertoire cgi-bin et que le répertoire racine des documents corresponde au sous-répertoire htdocs. On peut modifier sa configuration en éditant le fichier de configuration situé sous C:\Program Files\Apache Group\Apache\conf\httpd.conf. Ce fichier étant un fichier texte, il est très facile à lire et de voir comment les choses sont configurées.

En fonction de la configuration des logiciels de communication en réseau de votre ordinateur, vous devrez peut-être ajouter la ligne suivante au fichier de configuration httpd.conf de votre serveur Apache:

ServerName localhost

En l'absence de cette ligne, le système tentera de déterminer le nom de votre serveur. Cependant, des bogues présents dans certaines versions de Windows font échouer cette opération. Dans un tel cas de figure, Apache sort immédiatement lorsqu'on le démarre. Il affiche bien un message d'erreur, mais ce dernier est tout de suite effacé et vous n'aurez probablement pas le temps de le lire.

Mettre en place le répertoire cgi-bin de Greenstone

Le répertoire cgi-bin est celui où le serveur web traite les documents en tant que programmes à exécuter. On utilise la directive ScriptAlias d'Apache pour créer un répertoire cgi-bin. Vous remarquerez que cette directive permet de transformer n'importe quel répertoire en répertoire d'exécutables CGI – nul besoin pour le répertoire de s'appeler «cgi-bin»! De même, un répertoire appelé «cgi-bin» ne joue aucun rôle particulier en l'absence de directive ScriptAlias le concernant.

Une fois installé, Apache possède le répertoire cgi-bin suivant: C:\Program Files\Apache Group\Apache\cgi-bin. Ceci signifie que si on lui fournit l'URL http://localhost/cgi-bin/bonjour , le serveur web tentera d'exécuter un fichier bonjour situé dans le répertoire précédent.

Greenstone comprend un programme, appelé «library.exe», qui doit être exécuté par le serveur web: il lit alors un fichier appelé le «fichier de configuration de site de Greenstone», ou «gsdlsite.cfg», qui doit se trouver dans le même répertoire.

La meilleure manière d'obtenir ce résultat est d'utiliser la directive ScriptAlias d'Apache pour créer un nouveau répertoire cgi-bin. Voici l'extrait du fichier de configuration d'Apache, httpd.conf, qui ajoute le répertoire C:\Program Files\gsdl\cgi-bin à la liste des répertoires de type cgi-bin:

ScriptAlias /gsdl/cgi-bin/ "C:/Program Files/gsdl/cgi-bin/"
<Directory C:/Program Files/gsdl/cgi-bin>
  Options None
  AllowOverride None
</Directory>

Vous remarquerez que les fichiers de configuration d'Apache utilisent des barres de division ((forward) slash) en lieu et place des barres obliques inversées (backslash), communes sous Windows.

Ceci signifie que toutes les URL de la forme http://localhost/gsdl/cgi-bin… seront recherchées dans le répertoire de chemin CProgram Filesgsdlcgi-bin et exécutées par le serveur web. Par exemple, si on lui demande l'URL http://localhost/gsdl/cgi-bin/bonjour , le serveur web tentera de lire C:\Program Files\gsdl\cgi-bin\bonjour, et de l'exécuter. Mais l'URL http://localhost/cgi-bin/bonjour continuera comme avant à examiner le répertoire cgi-bin d'Apache à la recherche de C:\Program Files\Apache Group\Apache\cgi-bin\bonjour, pour exécuter ce fichier.

Le répertoire racine des documents

Le répertoire racine des documents est la racine de la structure arborescente des répertoires de votre serveur web. Lors de son installation, Apache dispose comme racine de documents du répertoire de chemin C:\Program Files\Apache Group\Apache\htdocs. Cela signifie que si on lui demande l'URL http://localhost/bonjour.html , le serveur web tentera de lire un fichier appelé bonjour.html dans le répertoire ci-dessus.

Greenstone contient plusieurs fichiers qu'il faut que le serveur web lise. La manière la plus simple de procéder est d'utiliser la directive Alias, qui ressemble à ScriptAlias à ceci près qu'elle s'applique aux pages web normales, et pas aux scripts CGI. Insérez les lignes suivantes dans le fichier de configuration de votre Apache, après la directive ScriptAlias, afin d'ajouter le répertoire C:\Program Files\gsdl comme lieu de recherche de documents.

Alias /gsdl/ "C:/Program Files/gsdl/"
<Directory C:/Program Files/gsdl>
 Options Indexes MultiViews FollowSymLinks
 AllowOverride None
 Order allow,deny
 Allow from all
</Directory>

Ceci signifie que toute URL correspondant au premier argument de la directive Alias (gsdl) est recherchée sous la forme de fichiers situés dans le répertoire donné en deuxième argument. En d'autres termes, une URL de la forme http://localhost/gsdl/… aura pour effet la recherche de fichiers dans le répertoire CProgram Filesgsdl. Si par exemple on fournit au serveur web l'URL http://localhost/gsdl/bonjour.html, il tentera de rechercher le fichier CProgram Filesgsdlbonjour.html. Mais l'URL http://localhost/bonjour.htmlcontinuera comme avant à examiner le répertoire htdocs normal d'Apache à la recherche du fichier CProgram FilesApache GroupApachehtdocsbonjour.html.

Assurez-vous d'ajouter la directive Alias après la directive ScriptAlias. Définir auprès d'Apache l'alias/gsdlavant l'alias/gsdl/cgi-binreconnaîtrait l'URL/gsdl/cgi-bin/libraryavec la directive Alias et non pas avec la directive ScriptAlias, et cette URL serait interprétée comme une requête de document au lieu d'une requête du résultat de l'exécution d'un programme. On obtiendrait alors l'«affichage» du fichier binaire du programme en tant que page web dans le navigateur web, sans jamais l'avoir exécuté.

Sécurité

Gardez à l'esprit le fait que si la version «bibliothèque web» de Greenstone est configurée en suivant les instructions données ci-dessus, n'importe qui aura le droit de télécharger tout fichier situé dans la structure arborescente de répertoire démarrant sous gsdl. Ceci comprend les fichiers d'indexation, les documents source de toute collection que vous construirez, la base de données utilisateur, les journaux d'utilisation, etc.

Si vous souhaitez éviter cela, vous pouvez facilement resserrer la configuration de votre serveur web afin d'en augmenter la sécurité. Dans le cas du serveur web Apache, remplacez les lignes données dans la section précédente par les lignes suivantes dans le fichier de configuration:

Alias /gsdl/ "C:/Program Files/gsdl/"
<Directory "C:/Program Files/gsdl">
   Order allow,deny
   Deny from all
   <FilesMatch
"\.(gif|jpe?g|png|css|mov|mpeg|ps|pdf|doc|rtf|jar|class)$">
         Order allow,deny
         Allow from all
   </FilesMatch>
</Directory>

Ceci aura pour effet de n'autoriser en téléchargement que les fichiers dont le nom vérifie l'expression rationnelle donnée dans la ligne FilesMatch (c'est-à-dire, dans le cas présent, de n'autoriser qu'une liste fixée d'extensions de noms de fichiers).

Les serveurs web PWS et IIS

Bien qu'aucun de ces deux serveurs ne soit installé par défaut dans les systèmes Windows actuels, on peut facilement les installer à l'aide du panneau de contrôle Ajouter/Supprimer des programmes. Si vous ne les trouvez pas sur le cédérom de votre distribution de Windows, il vous faudra les télécharger depuis le site web de Microsoft ( www.microsoft.com ).

La procédure de mise en place de Greenstone est la même pour PWS et pour IIS. Invoquez le gestionnaire personnel de web et effectuez les actions suivantes:

  1. Sélectionnez Avancé pour obtenir l'écran d'Options Avancées.
  2. Sélectionnez Accueil et cliquez sur Ajouter. Remplissez les champs comme suit:
    • ChampRépertoire:C:\Program Files\gsdl
    • ChampAlias:gsdl
    • Permissions d’accès:Lecture
    • Permissions d’application:Aucune
    • Cliquez sur OK.
    • Voilà qui rendra les fichiers de Greenstone accessibles au serveur web.
  3. De retour dans l'écran d'Options avancées, sélectionnez gsdl et cliquez sur Ajouter. Remplissez les champs comme suit:
    • ChampRépertoire:C:\Program Files\gsdl\cgi-bin
    • ChampAlias:cgi-bin
    • Permissions d’accès:Aucune
    • Permissions d’application:Exécution
    • Cliquez sur OK.
    • Voilà qui rendra le programme library.exe de Greenstone exécutable par le serveur web.
  4. Rendez-vous à l'URL http://localhost/cgi-bin/library.exe
    • Remarque: avec les serveurs PWS et IIS, il vous faut préciser l'extension de fichier .exe.