Note d'installation de MDWeb 1.5 sur un serveur linux CentOS

La page est créée Frédéric Barbe
 
CONTINUER À LIRE
Note d'installation de MDWeb 1.5 sur un serveur linux CentOS
Date de modification : 31/08/2007
Référence : PROC_MDWEB_082007
                                                           Version : 0.0       Page 1

                Description : Procédure d’installation de MDWeb sur CentOS

Stockage :

        Note d’installation de MDWeb 1.5
               sur un serveur linux CentOS

                                                           Nom                          Date

                                                     Léo Pratlong
                          Etablie par                                               31/08/2007
                                                       Equipe IS

                          Vérifiée par

                          Validée par

IRD Montpellier – Léo PRATLONG                                                                 Mercredi 18 Juillet 2007
Note d'installation de MDWeb 1.5 sur un serveur linux CentOS
Date de modification : 31/08/2007
Référence : PROC_MDWEB_082007
                                                           Version : 0.0       Page 2

                Description : Procédure d’installation de MDWeb sur CentOS

Stockage :

Avertissement :

Ce document a été réalisé par un étudiant de 1ère année de l’EPSI de Montpellier, Léo
Pratlong, dans le cadre d'un stage au sein de l'équipe 'informatique scientifique' DSI* de
l'IRD* sous la responsabilité de Régis Hocdé & Bruno Granouillac (de juin à août 2006).

Il s'agit de la restitution de l'étudiant 'non corrigée'.

    Note d’installation de MDWeb 1.5 sur serveur virtuel UNIX CentOS
                     https://vmmdweb.pdmz.mpl.ird.fr/mdweb15

IRD Montpellier – Léo PRATLONG                                                                 Mercredi 18 Juillet 2007
Note d'installation de MDWeb 1.5 sur un serveur linux CentOS
Date de modification : 31/08/2007
Référence : PROC_MDWEB_082007
                                                               Version : 0.0       Page 3

                    Description : Procédure d’installation de MDWeb sur CentOS

Stockage :

I)           Architecture du serveur :

                     Le schéma ci-dessus montre l’architecture du serveur Linux utilisé pour l’installation
             de MDWeb au sein de l’IRD. Sur le serveur virtuel (ici, la zone grise) sont installés un serveur
             cartographique, un serveur Apache (pour exécuter le code Php qui n’est traité que du côté du
             serveur), un serveur de base de données (de type PostgreSQL), et un serveur Z3950 qui
             permet de consulter des bases de données distantes via le protocole du même nom.

                      Le client se connecte à MDWeb (situé dans la zone de publication du serveur Apache)
             depuis son navigateur. Il effectue des demandes au serveur Apache qui, en fonction des
             critères de la demande, va rechercher une réponse, la traiter, et la transmettre au client sous
             forme de page web (HTML). Ainsi, le système reste invisible à l’utilisateur client qui ne
             dispose que d’une vue des résultats, à un instant T et en fonction des critères de sa
             demande.

IRD Montpellier – Léo PRATLONG                                                                     Mercredi 18 Juillet 2007
Note d'installation de MDWeb 1.5 sur un serveur linux CentOS
Date de modification : 31/08/2007
Référence : PROC_MDWEB_082007
                                                               Version : 0.0       Page 4

                    Description : Procédure d’installation de MDWeb sur CentOS

Stockage :

                     Le serveur Apache communique avec trois serveurs différents, situés eux-aussi sur le
             serveur virtuel :

                               Le premier, le serveur cartographique, permet de générer une carte selon les
                               choix de l’utilisateur (choix des couches géographiques, choix du système de
                               projection, etc…).
                               Le second, le serveur de base de données, est appelé par le serveur Apache à
                               l’aide de requêtes SQL. Il retourne au serveur les données correspondant à la
                               demande.
                               Et enfin, le troisième serveur, le serveur Z3950, offre un protocole de
                               communication qui permet d’aller consulter des bases de données distantes
                               (donc situées en dehors du serveur virtuel).

II)          Interface d’installation :

Afin de réaliser l’installation de MDWeb 1.5 sur le serveur virtuel, des interfaces sont mises à
disposition.

      a) Serveur DAV et client Netdrive
      La première est un accès sur fichier par serveur DAV (accessible avec le logiciel Netdrive).

IRD Montpellier – Léo PRATLONG                                                                     Mercredi 18 Juillet 2007
Note d'installation de MDWeb 1.5 sur un serveur linux CentOS
Date de modification : 31/08/2007
Référence : PROC_MDWEB_082007
                                                           Version : 0.0       Page 5

                Description : Procédure d’installation de MDWeb sur CentOS

Stockage :

     Problèmes :

                   Bugs à répétition : le transfert de fichier est quasi-impossible.
                   Droits d’accès aux fichiers : les répertoires ne sont pas tous accessibles. Seul le
                   répertoire de publication est disponible depuis ce navigateur (le dossier
                   /data/www/).
                   Le client Netdrive interprète les fichiers de type web qui sont envoyés (à savoir le
                   HTML, PHP, et les scripts tels les CSS ou le JS – javascript -). Cela rend impossible la
                   mise à jour des fichiers web par cette interface.

     b) Webmin

     Une seconde interface est mise à disposition. Il s’agit de l’interface d’administration Webmin qui
     offre plusieurs sous-interfaces. Tout d’abord, un accès sur fichier (en utilisateur devmdweb). Les
     droits d’accès sont limités aux répertoires /etc/ (qui stocke les fiches de configuration du serveur
     apache), /data/ (qui stocke les fichiers de configuration du serveur PostgreSQL), et /usr/ (qui
     stocke les librairies utilisées par le serveur postgreSQL).

IRD Montpellier – Léo PRATLONG                                                                 Mercredi 18 Juillet 2007
Date de modification : 31/08/2007
Référence : PROC_MDWEB_082007
                                                           Version : 0.0       Page 6

                Description : Procédure d’installation de MDWeb sur CentOS

Stockage :

     Tous les fichiers ne sont pas accessibles à l’intérieur de ces dossiers.

     Problèmes :

                   Accès limité.
                   Possibilité d’édition des fichiers, mais bug lorsqu’un fichier est trop imposant (par
                   exemple un fichier *.sql de 30Mo).

     Webmin offre aussi un interpréteur de commandes UNIX (« Commandes Shell ») connecté en
     utilisateur « root » ce qui permet un contrôle quasi-total de l’arborescence du serveur.

IRD Montpellier – Léo PRATLONG                                                                 Mercredi 18 Juillet 2007
Date de modification : 31/08/2007
Référence : PROC_MDWEB_082007
                                                           Version : 0.0       Page 7

                Description : Procédure d’installation de MDWeb sur CentOS

Stockage :

     Problèmes :

                   Certaines commandes très utiles (notamment « vi » qui permet l’édition des fichiers)
                   sont désactivées.
                   Lenteur des opérations (nécessité de décrire entièrement le cheminement d’une
                   opération par lignes de commandes).
                   Impossibilité d’exécuter des scripts (donc impossibilité d’automatisation).

      Webmin permet aussi la gestion d’un serveur de base de données postgreSQL, en invité de
      commande avec l’utilisateur « postgres » (même interface que l’invité de commandes Shell).
      L’utilisateur connecté à cet interpréteur est l’utilisateur « devmdweb ».

     Problèmes :

                   Il faut connaître les commandes de gestion de base de données PostgreSQL.
                   Impossibilité d’avoir une vue réelle de la base.
                   Nécessité de changer le propriétaire de la base (à l’origine : « postgres » ; valeur :
                   « devmdweb »).

IRD Montpellier – Léo PRATLONG                                                                 Mercredi 18 Juillet 2007
Date de modification : 31/08/2007
Référence : PROC_MDWEB_082007
                                                           Version : 0.0       Page 8

                Description : Procédure d’installation de MDWeb sur CentOS

Stockage :

      Et enfin, Webmin met à disposition une interface de gestion de « commandes personnalisées »,
      qui permet notamment de redémarrer le serveur Apache ou le serveur PostgreSQL aisément,
      une interface « journaux système » qui diffuse les fichiers d’enregistrement d’erreurs survenues
      lors de l’exécution du serveur Apache ou du serveur PostgreSQL, et d’une interface
      « Gestionnaire de procesus ».

      Webmin n’est donc pas une solution pratique, puisque chaque sous-interface offre un accès
      avec un utilisateur spécifique. Les droits d’accès ne sont donc pas les mêmes, ce qui pose de
      gros problèmes de compatibilité.

     Problèmes globaux de Webmin et utilisation :

                 Problèmes de mise à jour : comme netdrive ne permet pas de mettre à jour les
                 fichiers web, il faut le faire depuis Webmin. Pour cela, il faut créer un fichier en
                 commande shell dans un répertoire accessible (« touch
                 /etc/httpd/conf/nom_fichier » par exemple), puis se rendre dans le dossier depuis
                 l’interface d’accès aux fichiers, éditer le fichier, copier / coller le code que l’on veut y
                 inscrire, puis déplacer le fichier dans le répertoire qu’il doit occuper, en ligne de
                 commande (« mv /etc/httpd/conf/config.inc.php
                 /data/www/html/mdweb15/config/config.inc.php » par exemple).
                 Invisibilité des erreurs : Si une erreur est commise dans une ligne de commande, il
                 est difficile de s’en apercevoir de suite. L’erreur ne resurgit généralement que
                 lorsqu’il devient compliqué de la corriger. Par exemple, en tapant « mv
                 /etc/httpd/conf/config.inc.php /data/www/html/mdweb15/config.inc.php »,
                 l’opération suivante s’exécute : déplacer config.inc.php de /etc/httpd/conf/ vers
                 /data/www/html/mdweb15/. Or, si je me suis trompé et que le répertoire cible était
                 en fait /data/www/html/mdweb15/config/, aucun message d’erreur ne viendra
                 m’avertir de cette erreur.
                 Impossibilité d’édition avec la commande « vi » ce qui oblige à déplacer la page
                 concernée dans un répertoire accessible (par exemple « mv
                 /data/www/html/mdweb15/config/config.inc.php /etc/httpd/conf/config.inc.php »),
                 éditer la page grâce à l’option de contrôle de l’interface d’accès aux fichiers, puis re-
                 déplacer le fichier dans son répertoire d’origine.

     Quelques solutions :

IRD Montpellier – Léo PRATLONG                                                                 Mercredi 18 Juillet 2007
Date de modification : 31/08/2007
Référence : PROC_MDWEB_082007
                                                               Version : 0.0       Page 9

                    Description : Procédure d’installation de MDWeb sur CentOS

Stockage :

                     Permettre un accès SSH : c'est-à-dire, autoriser du côté de serveur une connexion
                     d’un poste de contrôle. Ce poste de contrôle est un invité de commande. Un des plus
                     utilisé est le logiciel PUTTY. Grâce à cette méthode, la commande « vi » est
                     disponible, l’interface graphique est celle du mode console de Unix, et on a un
                     contrôle total sur les commandes Shell (à condition d’être connecté en utilisateur
                     « root »). De plus, cet invité de commande permet de réaliser des scripts, donc
                     d’automatiser les opérations.
                     Disposer d’un module d’administration de base de données PostgreSQL :
                     PhpPgAdmin. Ainsi, il est plus facile d’avoir une vue de nos bases, et donc d’y vérifier
                     nos insertions et nos créations.
                     Utiliser Dreamweaver afin de pouvoir éditer les pages web sur le serveur Dav sans
                     que le client ne les interprète.
                     Permettre un accès SVN aux fichiers, ce qui permet en plus un meilleur contrôle et un
                     meilleur maintient des codes sources.

III)         Installation :

       a) Configuration du serveur Apache

       1- Modification du fichier httpd.conf

            La configuration du serveur Apache se fait dans /etc/httpd/conf/httpd.conf . Pour modifier
       ce fichier, la meilleure solution est de passer par le module de gestion de fichiers de l’interface
       Webmin, puis de cliquer sur le bouton « Editer », et de vérifier les directives suivantes (si
       absentes, les ajouter) :

             #
             AddType application/x-httpd-php .php
             AddCharset ISO-8859-1 .iso8859-1
             DirectoryIndex index.html index.html.var index.php
             #

             Attention, veillez à bien modifier les chemins afin qu’ils correspondent à votre serveur.

             #
             ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
             #
               
IRD Montpellier – Léo PRATLONG                                                                     Mercredi 18 Juillet 2007
Date de modification : 31/08/2007
Référence : PROC_MDWEB_082007
                                                                Version : 0.0       Page 10

                     Description : Procédure d’installation de MDWeb sur CentOS

Stockage :

                     AddHandler cgi-script .cgi
                     Options +ExecCGI
                     AllowOverride None
                     Options None
                     Order allow,deny
                     Allow from all
                  
             ##

             Autres directives à vérifier pour la configuration de mapserver pour MDWeb :

             # configuration pour mapserver dans MDweb
             #
             SetEnvIf Request_URI /wms MS_MAPFILE=/var/www/mdweb-
             demo15/mapserver_carto/config/default/carto.map
             #
             ScriptAlias /wms /usr/lib/cgi-bin/mapserv
             #
             Alias /proxy/ /var/www/mdweb-
             demo15/mapserver_carto/mapbuilder/server/php/
              Allow from all
             MultiViews
             Options Indexes
             AllowOverride None
             Order allow,deny
             
             #
             # fin de configuration de mapserver pour MDWeb

     2- Modification du fichier php.ini

             Les modifications à apporter sont les suivantes :

IRD Montpellier – Léo PRATLONG                                                                      Mercredi 18 Juillet 2007
Date de modification : 31/08/2007
Référence : PROC_MDWEB_082007
                                                               Version : 0.0       Page 11

                    Description : Procédure d’installation de MDWeb sur CentOS

Stockage :

        Vérifier dans ce même fichier l’instruction suivante (si elle est commentée, la dé-
     commentée) :

             Default_charset = "iso-8859-1"

         De plus, il faut rajouter des extensions php dans ce fichier. Attention, il ne faut pas oublier
     que les extensions php (de type .dll) sont de type .so sur un serveur Linux. Les extensions sont les
     suivantes (ajouter ces lignes dans le php.ini à l’endroit opportun) :

                         o          extension=dom.so
                         o          extension=gd.so
                         o          extension=mbstring.so
                         o          extension=odbc.so
                         o          extension=pdo.so
                         o          extension=pdo_odbc.so
                         o          extension=pdo_pgsql.so
                         o          extension=pdo_sqlite.so
                         o          extension=pgsql.so
                         o          extension=xmlreader.so
                         o          extension=xmlwriter.so
                         o          extension=xsl.so
                         o          extension=yaz.so

     Ces extensions correspondent à des fichiers qui doivent être placés dans le répertoire
     /usr/lib/php/modules/ du serveur.

IRD Montpellier – Léo PRATLONG                                                                     Mercredi 18 Juillet 2007
Date de modification : 31/08/2007
Référence : PROC_MDWEB_082007
                                                                Version : 0.0       Page 12

                     Description : Procédure d’installation de MDWeb sur CentOS

Stockage :

     Dernière modification à effectuer sur php.ini : Il faut enregistrer les identifiants de connexion à la
     base de données PostgreSQL. Pour cela, il faut chercher la partie « [PostgresSQL] » du fichier
     php.ini, et rajouter les lignes suivantes :

             ; Password for postgreSQL connexion.
             postgres.passw = "motdepasse"
             ; User for postgreSQL connexion.
             postgres.user = "utilisateur"

     Pour le serveur PostgreSQL hébergé sur le serveur virtuel VMMDWeb, le mot de passe est
     « 2devweb » et l’utilisateur « devmdweb ». Ce rajout au fichier php.ini évite d’inscrire ces
     identifiants dans le fichier de configuration de MDWeb, ce qui permet une meilleure sécurité,
     puisque le fichier php.ini ne se situe pas dans la zone de publication du serveur Apache.
     Nous verrons plus loin comment récupérer ces identifiants pour les utiliser dans MDWeb.

     Enfin, il faut redémarrer le serveur Apache (webmin  commandes personnalisées 
     redémarrer démon HTTPD).

     b) Transfert du dossier « mdweb15 »

         Le transfert du dossier se fait à l’aide du client Netdrive. L’upload (l’exportation) d’un dossier
     permet d’éviter l’erreur expliquée plus haut (interprétation des fichiers php lorsqu’ils sont
     transmis un par un). Néanmoins, certaines erreurs peuvent apparaître inopinément. Pour les
     éviter, il faut utiliser la solution expliquée plus haut (passer par le module de gestion de fichiers
     de webmin).

        Une fois le dossier transféré, il faut vérifier que le propriétaire de ce dossier est l’utilisateur
     « Apache ». Pour ce faire, il faut taper les commandes Shell suivantes :

             Vérifier les utilisateurs :

             cd /data/www/html/
             ls –l
                  L’instruction « cd » (« change directory ») permet de se positionner sur un répertoire (ici
                  /data/www/html/).

                 L’instruction « ls –l » permet de lister les différents fichiers du répertoire courant et d’en
                 afficher les caractéristiques.

             Un résultat de ce type s’affiche :

IRD Montpellier – Léo PRATLONG                                                                      Mercredi 18 Juillet 2007
Date de modification : 31/08/2007
Référence : PROC_MDWEB_082007
                                                               Version : 0.0       Page 13

                    Description : Procédure d’installation de MDWeb sur CentOS

Stockage :

             -rw-r--r--         1 toto toto 104 Apr 6 07:35 info.php
             drwxr-xr-x        25 utilisateur utilisateur 4096 Jul 10 16:06 mdweb15

          Le troisième champ (ici en rouge) désigne l’utilisateur propriétaire (à l’origine, celui qui a créé
     le fichier), et le quatrième champ (en vert) désigne le groupe propriétaire (à l’origine, le groupe
     de l’utilisateur propriétaire). Donc dans cet exemple, « utilisateur » est le propriétaire de
     mdweb15, et le groupe « utilisateur » est le groupe propriétaire.

             Pour changer le propriétaire, il faut inscrire ceci :

             chmod 775 –R mdweb15
             chown –R apache

                     La première instruction permet d’affecter des droits d’utilisation au dossier
                     mdweb15. « 775 » définie ces droits : Droits de lecture pour tout le monde, droits
                     d’écriture pour le propriétaire et son groupe (pas pour les autres), et droits
                     d’exécution pour tout le monde.
                     L’instruction suivant (« chown –R apache ») définie la propriété du dossier
                     « mdweb15 » (ainsi qu’aux sous-dossiers, grâce à l’instruction « -R ») à l’utilisateur
                     apache.

     c) Installation des bases de données

             1- Configuration du serveur :

         Avant d’importer les bases de données de MDWeb, il faut modifier le fichier d’accès au
     serveur Postgres, « pg_hba.conf » situé dans le répertoire « /etc/httpd/conf/ ». Ce répertoire est
     accessible depuis le module de gestion de fichiers de Webmin. Il faut donc éditer le fichier, et
     modifier la ligne suivante :

             host all all 127.0.0.1/32 md5
             En

             host all all 127.0.0.1/32 trust

         Puis recharger le serveur de base de données PostgreSQL via le module “ Commandes
      Personnalisées  Redémarrage du serveur Postgres local ” de Webmin

IRD Montpellier – Léo PRATLONG                                                                     Mercredi 18 Juillet 2007
Date de modification : 31/08/2007
Référence : PROC_MDWEB_082007
                                                               Version : 0.0       Page 14

                    Description : Procédure d’installation de MDWeb sur CentOS

Stockage :

             2- Création des bases de données :

         Pour créer les bases de données de MDWeb, il faut importer les fichiers .sql correspondant.
      Pour ce faire, il faut créer un fichier (par base de données) en commande Shell dans le
      répertoire accessible depuis le module de gestion de fichiers de Webmin :

             touch /etc/httpd/conf/script_creation_bdd.sql

         Se rendre ensuite dans ce répertoire depuis le module de gestion de fichier de Webmin, et
      éditer ce fichier. Copier le texte contenu dans le fichier .sql que vous possédez (par défaut,
      « dump-MDweb-demo15-fra.sql ») et le coller dans le fichier du serveur. Enregistrer. Attention !
      Etant donné la taille du texte à enregistrer, l’enregistrement met un temps conséquent (et peut
      aussi ne pas marcher).

             Une fois ce fichier créé, se rendre dans l’invité de commande Shell, et taper :

             mv /etc/httpd/conf/script_creation_bdd.sql /data/postgresql/

             Cette commande va déplacer le fichier du répertoire « /etc/httpd/conf/ » vers le dossier
             « /data/postgresql/ ».

             Il faut ensuite créer les bases de données en utilisant le module « Gestion postgres » de
             Webmin, et inscrire les commandes suivantes :

         createdb -E LATIN1 -h localhost -U mdweb-demo15-fra
         createdb -E LATIN1 -h localhost -U devmdweb thesaurus-fra
         createdb -E LATIN1 -h localhost -U devmdweb mdweb-geo15-fra

          La creation de la base de données géographiques nécessite des instructions supplémentaires,
         et de connaître le chemin de deux fichiers : « lwpostgis.sql » et « spatial_ref_sys.sql ». Le
         répertoire de ces fichiers sur le serveur VMMDweb est « /usr/share/pgsql/contrib/ ».

             Commandes supplémentaires pour la base de données géographique :

         createlang plpgsql mdweb-geo15-fra
         psql -d mdweb-geo15-fra -f /usr/share/pgsql/contrib/lwpostgis.sql
         psql -d mdweb-geo15-fra -f /usr/share/pgsql/contrib/spatial_ref_sys.sql

IRD Montpellier – Léo PRATLONG                                                                     Mercredi 18 Juillet 2007
Date de modification : 31/08/2007
Référence : PROC_MDWEB_082007
                                                               Version : 0.0       Page 15

                    Description : Procédure d’installation de MDWeb sur CentOS

Stockage :

             Ces commandes permettent d’ajouter les références spatiales à la base de données
             géographiques.

             Une fois les bases de données créées, il faut les remplir à l’aide des fichiers .sql
             précédemment importés :

             psql -d mdweb-demo15-fra < dump-MDweb-demo15-fra.sql
             psql -d thesaurus-fra < dump-thesaurus-fra.sql
             psql -d mdweb-geo15-fra < dump-geo-demo15-linux-france.sql

             Attention ! L’opération peut prendre plusieurs minutes, voir plusieurs dizaines de minutes…

     d) Configuration de MDWeb

     Une fois les configurations des serveurs Apache et Postgres accomplies, il faut configurer
     MDWeb. Pour ce faire, il faut renommer le fichier
     /data/www/html/mdweb15/config/config.inc.linux.php en
     /data/www/html/mdweb15/config/config.inc.php à l’aide de la commande « mv » :

             mv /data/www/html/mdweb15/config/config.inc.linux.php
             /data/www/html/mdweb15/config/config.inc.php

     Editer ensuite le fichier config.inc.php (avec la méthode décrite plus haut) et configurer de la
     manière suivante :

             $type_serveur="unix";
             $url_site="";
             $alias_appli="/mdweb15/";
             $chemin_appli="/data/www/html/mdweb15/";
             // adresse du serveur de base de données
             $server="localhost";
             // driver générique pour PostgreSQL
             $db_type="postgres";
             $user = get_cfg_var("postgres.user");
             $password = get_cfg_var("postgres.passw");

             // Entrez ici le nom de la base de données MDweb
             $db_nom="mdweb-demo15-fra";
             $email_admin="admin@domain.pays";
             //smtp du serveur de mail qui se charge de l'envoi des messages
             $smtp_infos="server-smtp@domaine.pays";

IRD Montpellier – Léo PRATLONG                                                                     Mercredi 18 Juillet 2007
Date de modification : 31/08/2007
Référence : PROC_MDWEB_082007
                                                                Version : 0.0       Page 16

                     Description : Procédure d’installation de MDWeb sur CentOS

Stockage :

     Sont écrites en rouge les commandes permettant de récupérer les identifiants dans le fichier
     php.ini.

     Et enfin, il faut tester la connexion à mdweb.

     Les trois modules disponibles (serveur cartographique, thésaurus, et interopérabilité) doivent
     aussi être configurés :

             1- Configuration et activation des thesauri :

             Pour activer les thesauri, il faut modifier le fichier config.inc.php (voir plus haut) et affecter
             les valeurs suivantes :

             // --------------------- Configuration du module thésaurus ---------------------------------------
             //$base_thesaurus=true;
             if (file_exists($chemin_appli."config/config.inc.thesaurus.php")){
                       include_once "config.inc.thesaurus.php";
             }

             Renommer ensuite le fichier config.inc.thesaurus.linux.php dans le répertoire
             /data/www/html/mdweb15/config/ en config.inc.thesaurus.php (commande « mv »), puis
             éditer ce fichier.

             Affecter les valeurs suivantes :

             /*
             fichier de configuration pour la connexion à la base de données contenant les thésaurus
             utilisés par MDweb
             */
             $base_thesaurus = true;
             $server_thesaurus_db_type = "postgres";
             $server_thesaurus_host = "localhost";
             $server_thesaurus_port = "5432";
             $server_thesaurus_user = $user;
             $server_thesaurus_pwd = $password;
             $db_nom_thesaurus = "thesaurus-fra"; // base de données thesaurus
             $thesaurus_appli = "thesaurus_demo"; // thesaurus propre à l'application
             $lang_thesaurus_appli = "french"; // langue du thesaurus de l'application
             // (valeurs : french, english, spanish, portuguese, arabic,...)

IRD Montpellier – Léo PRATLONG                                                                      Mercredi 18 Juillet 2007
Date de modification : 31/08/2007
Référence : PROC_MDWEB_082007
                                                               Version : 0.0       Page 17

                    Description : Procédure d’installation de MDWeb sur CentOS

Stockage :

                      Une fois ces modifications effectuées, MDWeb propose la recherche par thésaurus
             ainsi que la complétion automatique (complète la saisie d’un terme selon les premières
             lettres qui le composent).

             2- Configuration serveur cartographique :

                 Cette configuration constitue la partie la plus difficile de l’installation de MDWeb. Nous
             allons nous efforcer de recenser les principales erreurs qui peuvent survenir. Néanmoins,
             cette liste est non exhaustive et ne tient pas compte des erreurs de configuration du serveur
             Unix en lui-même, et qui peuvent apparaître inopinément. Cette liste référence donc les bugs
             connus lors de l’installation sur le serveur virtuel VMMdweb.

                 a- Vérifier la présence et la validité des fichiers *.so
                    Vérifier dans le répertoire /usr/lib/php/modules/ la présence des fichiers suivants
                    (ceux inscrits plus haut dans le php.ini) :

                    dom.so
                    gd.so
                    mapscript.so
                    mbstring.so
                    odbc.so
                    pdo.so
                    pdo_odbc.so
                    pdo_pgsql.so
                    pdo_sqlite.so
                    pgsql.so
                    xmlreader.so
                    xmlwriter.so
                    xsl.so
                    yaz.so

                    ATTENTION ! Le fichier mapscript.so est obtenu lors de la compilation du serveur
                    Apache MapServer. Si ce dernier n’est pas chargé par le serveur (voir dans le
                    « journal d’erreurs »), il faut donc le régénérer en recompilant le serveur Apache
                    accompagné de commandes spéciales. Toute réinstallation du serveur Apache
                    implique qu’il faut régénérer ce fichier en même temps.

                 b- Modifier le fichier /usr/share/proj/epsg

IRD Montpellier – Léo PRATLONG                                                                     Mercredi 18 Juillet 2007
Date de modification : 31/08/2007
Référence : PROC_MDWEB_082007
                                                           Version : 0.0       Page 18

                Description : Procédure d’installation de MDWeb sur CentOS

Stockage :

                Le fichier epsg doit être complété à l’aide d’une valeur provenant du fichier
                /usr/share/proj/esri. Il faut copier la ligne  du fichier /usr/share/proj /esri, ou
                copier la ligne suivante et l’insérer dans epsg :
                 +proj=merc +lat_ts=0.000000000 +lon_0=0.000000000 +k=1.000000
                +x_0=0.000 +y_0=0.000 +ellps=WGS84 +datum=WGS84 +units=m
                # World_Sinusoidal

             c- Vérifier les droits des fichiers
                Le serveur cartographique génère des fichiers qu’il écrit lui-même. Il faut donc
                vérifier qu’il puisse écrire dans le répertoire voulu (et accessoirement, étendre ces
                droits à tout MDWeb, comme énoncé plus haut).
                Le dossier dans lequel le serveur va écrire ses fichiers est le
                /data/www/html/mdweb15/mapserver_carto/ . Il faut donc vérifier les droit de ce
                dossier, et par sécurité, vérifier les droits à l’intérieur de ce dossier :
                Ls –l /data/www/html/mdweb15/               # mapserver_carto : rwxrwxr-x
                # Si ce n’est pas le cas :
                Chmod 775 -R /data/www/html/mdweb15/mapserver_carto/

             d- Vérifier la structure de la base de données
                Le serveur cartographique utilise la base de données géographique installée
                précédemment. Il faut vérifier la structure de la base de données, car un problème
                au niveau de l’installation peut totalement fausser l’installation du serveur
                cartographique, notamment au niveau de la table « geometry_columns ». Utilisez
                pour cela PhpPgAdmin (https://devpgsql.mpl.ird.fr/phppgadmin/).

                 Tables présentes dans la base de données géographiques (NB : Selon l’utilisation du
                 serveur cartographique, la table « World » peut-être remplacé par une autre
                 dimension, comme par exemple « France ») :

IRD Montpellier – Léo PRATLONG                                                                 Mercredi 18 Juillet 2007
Date de modification : 31/08/2007
Référence : PROC_MDWEB_082007
                                                           Version : 0.0       Page 19

                Description : Procédure d’installation de MDWeb sur CentOS

Stockage :

                Colonnes composant la table « geometry_columns ».

             e- Modifier le fichier config_create_mapFile.php
                Le fichier
                /data/www/html/mdweb15/mapserver_carto/admin/config_create_mapFile.php est
                utilisé pour la génération de la carte. Il faut cependant le corriger afin qu’il
                fonctionne sur le serveur CentOs. Il faut donc éditer le fichier (le déplacer puis
                « éditer » dans le gestionnaire de fichier).

                           Tout d’abord, il faut déplacer des fonctions. Une fonction est une portion de
                           code encadrée par des accolades (function nom_fonction(arguments,…) { ….
                           }). On peut repérer par exemple la première fonction écrite dans ce fichier :
                           la fonction « copier_fichier() ». Il faut justement la déplacer en dessous de la
                           fonction suivante « ecrire_fichier() ». En effet, afin d’éviter tout bug pouvant
                           se produire lors d’un non respect de l’algorithmie, il est souhaitable de placer
                           la fonction appelante après la fonction appelée. Or, la fonction
                           « copier_fichier() » fait appel à la fonction « ecrire_fichier() ».

                           Ensuite, il faut corriger la ligne 509 de ce même fichier. Par défaut, cette ligne
                           affiche :
                           $pwd = $lecteur.$chemin_appli."mapserver_carto/admin/"
                           $configFolderPath = $lecteur.$chemin_appli."mapserver_carto/config/"

                           La variable $lecteur correspond à une variable utilisée pour un serveur
                           Windows. Ici, cette variable n’étant pas initialisée, il est préférable de la
                           supprimer, pour obtenir ces lignes :
                           $pwd = $chemin_appli."mapserver_carto/admin/"
                           $configFolderPath = $chemin_appli."mapserver_carto/config/"

IRD Montpellier – Léo PRATLONG                                                                 Mercredi 18 Juillet 2007
Date de modification : 31/08/2007
Référence : PROC_MDWEB_082007
                                                               Version : 0.0       Page 20

                    Description : Procédure d’installation de MDWeb sur CentOS

Stockage :

                               Ligne 533, vérifier la ligne suivante :
                               $categories['cat_admin'] = array("world", "ocean")

                               Il faut que les éléments décris dans array soient présents dans la base de
                               données géographique. Par exemple, ici, il faut qu’une table « world » et
                               qu’une table « ocean » existent dans ma base de données.

                 f- Modifier le fichier mapbuilderConfig.xml
                    Il nous faut dorénavant modifier le fichier
                    /data /www/html/mdweb15/mapserver_carto/mapbuilder/lib/mapbuilderConfig.xm
                    l afin de lui rajouter l’adresse des fichiers qu’il devra utiliser. En fin de fichier,
                    modifier les balises  et  comme suit :
                    /mdweb15/mapserver_carto/mapbuilder/server/php/proxy.php
                    /mdweb15/mapserver_carto/mapbuilder/server/php/serializer.php

                 g- Charger les couches géographiques via l’interface d’administration
                    Connectez-vous à MDweb15 et inscrivez vos identifiants (administrateur : admin …
                    mot de passe : yopyop). Cliquez sur Administration en haut à droite. Un nouveau
                    menu (rouge) apparaît. Cliquez alors sur BD Géo  Configuration  Editeur
                    Cartographique.
                    Chargez alors les couches qui vous intéressent, et enfin, sauvegardez.

             3- Mise en place de l’interopérabilité :

                  L’interopérabilité est le fait de faire communiquer MDweb avec d’autres outils de
             catalogage (en théorie). En pratique, l’interopérabilité permet de récupérer dans le schéma
             de données de MDweb, des métadonnées stockées dans d’autres bases de données
             (distantes).
                  A l’origine, MDweb utilise le serveur Z3950 et le serveur du même nom. Ce protocole
             pose de nombreux problème de compatibilité et de sécurité. Ce système peu abouti est
             quasi-inexploitable, bien qu’inscrit dans l’OGC.
                  Ainsi, MDweb 1.6 inclura un autre protocole de communication, plus simple d’utilisation
             et mieux standardisé, nommé le CSW.

IRD Montpellier – Léo PRATLONG                                                                     Mercredi 18 Juillet 2007
Date de modification : 31/08/2007
Référence : PROC_MDWEB_082007
                                                               Version : 0.0       Page 21

                    Description : Procédure d’installation de MDWeb sur CentOS

Stockage :

                 L’installation de l’interopérabilité en Z3950 sur le serveur Linux CentOs a été un échec. Il
             semblerait que le serveur soit incompatible avec ce système. Autrement, il pourrait s’agir
             d’un problème d’infrastructure, donc de sortie du serveur. De plus, l’interface mise à
             disposition ne permet pas une installation normale de ce serveur : cette installation se fait au
             travers d’une interface homme-machine, permettant ainsi de renseigner quelle base de
             données interroger. Etant donné que l’outil fourni n’est utilisable qu’en mode console, il fut
             donc impossible d’y installer directement ce serveur. Peut-être est-ce là aussi une raison de
             cette incompatibilité.

                 On a donc essayé d’implémenter le mode CSW. Pour cela, il faut enrichir MDweb 1.5 des
             améliorations que propose MDweb 1.6, sans pour autant passer à cette version encore
             instable.
                 Il y a donc nécessité à remplacer (ou le cas échéant, rajouter) les fichiers suivants
             (certains restent tout de même inchangés) :
             /config/config.inc.php
             /config/config.inc.z3950.php
             /config/config.inc.z3950.template.php
             /config/config_catalogs.php
             /config/config.inc.csw.php
             /config/config.inc.csw.template.php
             /consult/BarOnglets.php
             /consult/Consult.php
             /consult/index.php
             /consult/InfosSearch.php
             /consult/menug.php
             /consult/search.php
             /consult/SearchSheets.php
             /metier/ParamRequest.php
             /metier/Serveur.php
             /metier/Serveurs.php
             /metier/ServiceMetier.php
             /metier/Session.php
             /metier/XmlContent.php
             /metier/XmlResponse.php
             /metier/expansion/ChoixFiltrageCroise.php
             /metier/expansion/Expansion.php
             /metier/expansion/ExpansionThemaInteractive.php
             /metier/expansion/ExpansionThematique.php
             /metier/expansion/FiltrageCroise.php
             /metier/expansion/FiltrageThematique.php
             /metier/expansion/fonctions.php

IRD Montpellier – Léo PRATLONG                                                                     Mercredi 18 Juillet 2007
Date de modification : 31/08/2007
Référence : PROC_MDWEB_082007
                                                              Version : 0.0       Page 22

                   Description : Procédure d’installation de MDWeb sur CentOS

Stockage :

             /metier/expansion/IntExpansion.php
             /persistance/ServicePersistance.php
             /persistance/xml_test.xml
             /persistance/recherche/IntRecherche.php
             /persistance/recherche/rechercheCSW/clientCSW.php
             /persistance/recherche/rechercheCSW/RechercheCSW.php
             /persistance/recherche/rechercheSGBD/RechercheSGBD.php
             /persistance/recherche/rechercheSGBD/RechercheSGBDCarto.php
             /persistance/recherche/rechercheSGBD/RechercheSGBDNonCarto.php
             /persistance/recherche/rechercheSGBD/RechercheSGBDNonCarto.php.bak
             /persistance/recherche/rechercheZ3950/clientZ3950.php
             /persistance/recherche/rechercheZ3950/extraction_xml.php
             /persistance/recherche/rechercheZ3950/RechercheZ3950.php
             /persistance/recherche/rechercheZ3950/requestToRPN.php
             /persistance/recherche/rechercheZ3950/z3950_config.php

IRD Montpellier – Léo PRATLONG                                                                    Mercredi 18 Juillet 2007
Vous pouvez aussi lire