Pré-requis:
Ce tutoriel nécessite :
- une connexion internet,
- d’avoir les paquets à jour ainsi qu’une petite modification du source.list afin d’avoir tous les paquets nécessaires
- d’avoir installé apache2 et php5
Mémo :
- Installation de Apache2 et php5 :
sudo aptitude install apache2 php5
- Configiration du fichier hosts ici
Installation des paquets
sudo aptitude install cgi-mapserver mapserver-bin mapserver-doc php5-mapscript python-mapscript
Note : Avec cette méthode, mapserv est installé dans /usr/lib/cgi-bin
.
Visualisez les informations relatives à Mapserver
Après l’installation, vous pouvez voir les paramètres se reportant aux supports ainsi qu’aux formats d’export et import pris en compte par Mapserver.
Tapez :
/usr/lib/cgi-bin/mapserv -v
Réponse de la machine :
MapServer version 5.0.0 OUTPUT=GIF OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=FREETYPE SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=WCS_SERVER SUPPORTS=THREADS SUPPORTS=GEOS INPUT=EPPL7 INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE
Vous pouvez également retrouver ces informations en mettant sur votre serveur un fichier info.php à la racine du serveur (par exemple /var/www) contenant :
<?php phpinfo() ?>
Il nous suffira ensuite de taper http://localhost/info.php
Vous pouvez désormais tester le CGI de mapserver en cliquant sur le lien suivant :
http://localhost/cgi-bin/mapserv
Votre navigateur devrez vous retourner la phrase suivante : « No query information to decode. QUERY_STRING is set, but empty. »
Installation des exemples
Vous pouvez maintenant installer un exemple d’application conçu pour mapserver5 http://maps.dnr.state.mn.us/mapserver_demos/workshop-5.0.zip
Note : Dans mon cas, j’ai extrait le contenu de l’archive dans /home/gglafouine/gis-test/mapserver (les liens sont en relation avec ce dossier alors modifiez les en conséquences).
Configuration d’Apache2
Désormais nous devons éditer le fichier Default du serveur Apache afin de lui définir un nouvel hôte permettant d’accéder à notre application.
sudo gedit /etc/apache2/sites-available/default
Ajouter l’hôte virtuel :
<VirtualHost *> ServerName mapserver DocumentRoot /home/gglafouine/gis-test/mapserver <Directory /> Options FollowSymLinks AllowOverride All </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/mapserverdemo_error.log LogLevel warn CustomLog /var/log/apache2/mapserver_access.log combined ServerSignature On </VirtualHost>
Nous devons ensuite modifier le fichier hosts :
sudo gedit /etc/hosts
Ajoutez la ligne suivante :
127.0.0.2 localhost.localdomain localhost mapserver
Astuce : Vous pouvez créer un nouveau lien sur le fichier mapserv contenu dans le dossier /usr/lib/cgi-bin/ en le nommant mapserv50 (cela évite de modifier les occurrences des fichiers.)
Maintenant vous devez relancez le serveur :
sudo /etc/init.d/apache2 restart
Vous pouvez désormais vérifier une nouvelle fois le fonctionnement de mapserver en CGI en cliquant sur le lien suivant :
Votre navigateur devrez vous retourner la phrase suivante : « No query information to decode. QUERY_STRING is set, but empty.
Notre exemple n’est pas encore prêt à être utilisé. Pour cela, nous devons modifier les fichiers :
- index.html
- itasca.map
configuration de l’exemple
Tout d’abord, nous allons modifier le fichier index.html contenu dans le dossier workshop-5.0.
sudo gedit /home/gglafouine/gis-test/mapserver/workshop-5.0/index.html
Entrez les chemins correspondant à votre installation dans les ligne suivantes :
8 9 10 | // EDIT THE NEXT 2 LINES TO MATCH YOUR SETUP var snippet = "IMAGEPATH '/home/gglafouine/gis-test/mapserver/tmp/'"; snippet += " IMAGEURL '/tmp/'"; |
41 42 43 44 | <!-- EDIT THESE HIDDEN VARIABLES --> <input type="hidden" name="map" value="/home/gglafouine/gis-test/mapserver/workshop-5.0/itasca.map"> <input type="hidden" name="program" value="/cgi-bin/mapserv50"> <input type="hidden" name="root" value="/mapserver/workshop-5.0"> |
Il nous faut encore modifier une ligne dans le mapfile :
sudo gedit /home/gglafouine/gis-test/mapserver/workshop-5.0/itasca.map
Modifiez la ligne :
76 | WMS_ONLINERESOURCE "http://localhost.localdomain/mapserver/workshop-5.0/index.html" |
Enfin, vous pouvez visualiser les exemples en cliquant sur :
http://mapserver/workshop-5.0/
Et là ça fonctionne.