Installation de Mapserver 4.6 pour Windows et Linux

Transcription

Installation de Mapserver 4.6 pour Windows et Linux
Guide d'installation de MapServer
et PHP Mapscript
- Windows et Linux-
Veremes
42, avenue des Jardins
66240 St Esteve
http://www.veremes.com
[email protected]
Table des matières
1. Introduction.........................................................................................................2
2. Windows...............................................................................................................2
2.1 Installation de MapServer.......................................................................................2
2.1.1 A partir d’une distribution binaire.........................................................................2
Téléchargement.....................................................................................................................................................3
Décompacter.........................................................................................................................................................3
Installer mapserver.exe..........................................................................................................................................3
Installer le support des systèmes de projections.....................................................................................................3
Installer les bibliothèques dynamiques..................................................................................................................3
Tests......................................................................................................................................................................4
Automatisation de l’installation / désinstallation...................................................................................................5
Documentation......................................................................................................................................................5
2.1.2 A partir du code source.......................................................................................5
2.2 Installation de PHP..................................................................................................6
2.2.1 A partir d’une distribution binaire.........................................................................6
Téléchargement.....................................................................................................................................................6
Utilisation de l’Installer Windows.........................................................................................................................6
Installation manuelle.............................................................................................................................................6
Configuration du serveur web Apache..................................................................................................................8
Tests......................................................................................................................................................................8
2.3 Installation de PHP MapScript................................................................................9
2.3.1 A partir d’une distribution binaire.........................................................................9
Téléchargement.....................................................................................................................................................9
Installation de PHP_Mapscript..............................................................................................................................9
Configuration......................................................................................................................................................10
Tests....................................................................................................................................................................10
2.3.2 A partir du code source.....................................................................................10
3. Linux...................................................................................................................11
3.1 Préparation............................................................................................................11
3.1.1 Ressources.......................................................................................................11
3.1.2 Procédure..........................................................................................................11
3.1.3 Test...................................................................................................................11
3.2 Installation de PHP................................................................................................11
3.2.1 Procédure..........................................................................................................11
3.2.2 Configuration.....................................................................................................12
3.2.3 Test...................................................................................................................12
3.3 Installation de MapServer et PHP MapScript.......................................................12
3.3.1 Procédure..........................................................................................................12
3.3.2 Configuration.....................................................................................................13
3.3.3 Test...................................................................................................................13
Guide d'installation de MapServer et PHP Mapscript
1/16
Page : 1 / 16
1. Introduction
Ce document fait partie intégrante du support de cours "Développement de sites web
cartographiques avec MapServer". Il présente l'installation de la version 4.6.1 de
mapserver et PHP_MapScript sous Windows.
Le serveur http utilisé est Apache 2. Son installation n'est pas détaillée ici.
La première partie du cahier d'exercices de la formation fourni des exemples
d'installations et de tests.
La documentation officielle est constituée des documents suivants :
-Fichier README.TXT se trouvant dans les distributions binaires
-MapServer UNIX Compilation and Installation HOWTO
-Mapserver PHP/Mapscript Installation HOWTO
De nombreux renseignements utiles se trouvent également sur le serveur WIKI de
mapserver.
2. Windows
2.1 Installation de MapServer
2.1.1
A partir d’une distribution binaire
Il est recommandé d’installer MapServer sous Windows à partir d’une distribution binaire.
Plusieurs distributions sont disponibles sur le site officiel de MapServer :
http://ms.gis.umn.edu/download/current/windows/
Toutes ces distributions intègrent OGR et donc le support du format TAB de mapinfo.
Pour la formation, une distribution propre à été mise en place, dans l’archive
mapserver-4.6.1-veremes.zip. Elle se base sur la distribution mapserver-4.6.1-win32php5.0.5.zip téléchargée sur le site http://www.maptools.org/ .
L’installation par elle-même est très simple.
Il suffit de copier le fichier mapserv.exe contenu dans bin vers le répertoire cgi-bin du
serveur, de copier le répertoire proj dans C:\, et de copier les fichiers dll contenus dans
bin vers le C:\WINNT ou C:\WINDOWS.
Cette démarche est détaillée ci-dessous :
Guide d'installation de MapServer et PHP Mapscript
2/16
Page : 2 / 16
Téléchargement
Prenons l’exemple de la distribution propre à la formation.
Le fichier mapserver-4.6.1-veremes.zip est téléchargé dans C:\mapserver. Le nom peut
bien sûr varier en fonction de la distribution et de la version.
Décompacter
Il faut décompacter le fichier précédent en respectant l’arborescence et de préférence
dans un répertoire correspondant au nom de la distribution (pour permettre la cœxistence
de plusieurs versions).
Décompactez dans : C:\mapserver\mapserver-4.6.1-veremes.
Le résultat doit ressembler à ceci :
Fichiers contenus dans une distribution mapserver windows
Installer mapserver.exe
Copier le fichier mapserv.exe contenu dans bin vers le répertoire cgi-bin du serveur web.
Installer le support des systèmes de projections
Copier le répertoire proj dans C:\
Installer les bibliothèques dynamiques
Copier les fichiers dll contenus dans lib vers le répertoire %SYTEMROOT%.
SYTEMROOT correspond généralement à c:\windows\ ou c:\winnt\.
Guide d'installation de MapServer et PHP Mapscript
3/16
Page : 3 / 16
Pour connaître l’emplacement sur sa machine il suffit de taper : echo %SYSTEMROOT%
dans une fenêtre console.
Tests
Attention : si lors de vos tests, un message d'erreur concernant le fichier msvcr71.dll
apparaît, téléchargez ce dernier à l'adresse http://www.dll-files.com/dllindex/dllfiles.shtml?msvcr71, et décompactez l'archive dans votre répertoire %SYSTEMROOT%.
Avant de tester le bon fonctionnement de mapserver en créant une carte, il est possible
de procéder à des tests intermédiaires de 2 manières :
En mode console, l’appel de mapserv.exe (attention pas mapserver.exe !) doit générer le
message suivant :
Test de mapserver en mode console
mapserv.exe –v permet d’obtenir la configuration de la mapserver installée.
Il est également possible de tester l'appel de mapserver à travers le serveur http avec l'url
suivante :
http://localhost/cgi-bin/mapserv.exe
Le message suivant doit apparaître en cas de succès :
No query information to decode. QUERY_STRING is set, but empty.
Guide d'installation de MapServer et PHP Mapscript
4/16
Page : 4 / 16
Test de mapserver à travers le serveur http
Automatisation de l’installation / désinstallation
Pour permettre le test de différentes distributions ou versions nous proposons de
décompacter le fichier zip dans un sous-répertoire spécifique et d’automatiser la
procédure d’installation/Désinstallation à partir des modèles de scripts installms.bat et
uninstallms.bat. Ces scripts pourront être adaptés et stockés dans chacun des répertoires
contenant une distribution de mapserver. Des modèles de script d'installation sont fournis
dans le répertoire \documentation\doc_installation du CDROM.
REM installms.bat : Installation de MapServer 4.6.1
copy C:\mapserver\mapserver-4.6.1-veremes\bin\mapserv.exe C:\serveurs\Apache2\cgi-bin\
copy C:\mapserver\mapserver-4.6.1-veremes\bin\*.dll %SYSTEMROOT%
xcopy C:\mapserver\mapserver-4.6.1-veremes\proj /e/k C:\proj\
************************************
REM uninstallms.bat : Dé-installation de MapServer 4.6.1
REM Suppression de mapserv.exe
del C:\serveurs\Apache2\cgi-bin\mapserv.exe
REM Suppression des dll
REM pour avoir la liste des dll : dir C:\mapserver\mapserver-4.6.1-veremes\bin\*.dll / b >
listedll.txt
cd %SYSTEMROOT%
del gdal12.dll libcurl.dll libpq.dll NCScnet.dll NCSEcw.dll NCSEcwC.dll NCSUtil.dll
pdflib.dll proj.dll xerces-c_1_6_0.dll
REM Suppression du répertoire C:\Proj\
rd C:\proj\ /S/Q
Documentation
L’installation de mapserver est décrite dans le fichier README-Install.txt contenus dans
chaque distribution. Ces fichiers décrivent également la liste des formats supportés.
2.1.2
A partir du code source
Pour les développeurs expérimentés, il est possible de compiler mapserver sous
Windows à partir de MS-Visual C++ ou de l’environnement CYGWIN.
Guide d'installation de MapServer et PHP Mapscript
5/16
Page : 5 / 16
La compilation sous Windows est décrite dans deux documents :
“MapServer Cygwin Compilation and Installation HOWTO” et “MapServer Win32
Compilation and Installation HOWTO”.
2.2 Installation de PHP
2.2.1
A partir d’une distribution binaire
L’installation de PHP est nécessaire avant celle de PHP_Mapscript.
MapScript étant une extension de PHP, il est nécessaire d’installer une version
compatible de PHP. Dans le cas présent, nous allons utiliser la version 4.6 de MapScript,
c’est donc la version 5.0.5 de PHP qui sera installée.
Téléchargement
Sur le site www.php.net, télécharger la version binaire pour windows de PHP 5.0.5.
Il en existe de deux sortes :
php-5.0.5-installer.exe pour utiliser l’installer Windows et php-5.0.5-Win32.zip pour faire
l’installation à la main.
Utilisation de l’Installer Windows
Ce mode d'installation est déconseillé, Il est dans tous les cas nécessaire de finaliser
l'installation "à la main".
Lancer le fichier php-5.0.5-installer.exe
L’installation est automatique.
Installation manuelle
1.Décompacter le fichier php-5.0.5-Win32.zip sous C:\serveurs\
Guide d'installation de MapServer et PHP Mapscript
6/16
Page : 6 / 16
Répertoire d'installation de php
2.Identifier la localisation de base du système d'exploitation en tapant : echo
%SYSTEMROOT% dans une fenêtre console (« C:\WINDOWS\ » sous xp).
3.Copier php.ini-dist dans ce répertoire
4.Renommer ce fichier en php.ini
5.Rechercher "extension_dir" et mettre à jour la ligne avec le fichier contenant les dll :
extension_dir = "C:\serveurs\php-5.0.5-Win32\ext"
6.Rechercher "doc_root" et mettre à jour avec la racine du serveur web : doc_root =
"C:\serveurs\Apache2\htdocs"
Guide d'installation de MapServer et PHP Mapscript
7/16
Page : 7 / 16
Configuration du serveur web Apache
Ajouter les lignes suivantes à la fin du fichier de configuration du serveur Apache :
C:\serveurs\Apache2\conf\httpd.conf
Pour la version d'Apache 2.0 il faut rajouter :
### Configuration PHP
ScriptAlias /php "C:/serveurs/php-5.0.5-Win32"
AddType application/x-httpd-php .php
AddType application/x-httpd-php .phtml
Action application/x-httpd-php "/php/php-cgi.exe"
###
Pour la version d'Apache 2.2 il faut rajouter :
### Configuration PHP
ScriptAlias /php "C:/serveurs/php-5.0.5-Win32"
AddType application/x-httpd-php .php
AddType application/x-httpd-php .phtml
#droits d'accès au répertoire de PHP (copie du modèle cgi-bin des lignes juste au dessus)
<Directory "C:/serveurs/php-5.0.5-Win32">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
Action application/x-httpd-php "/php/php-cgi.exe"
###
Veillez bien sûr à adapter les chemins à la localisation de votre exécutable PHP.
Relancer Apache.
Remarque importante : Pour pouvoir fonctionner avec MapScript, PHP doit être installé en
mode CGI, ce qui est le cas avec la procédure précédente.
Tests
Créer un fichier test.php sous \htdocs\phptest\ et saisir :
<html>
<?php
phpinfo(); ?>
</html>
Dans Internet explorer taper http://localhost/phptest/test.php .
Le résultat du test doit montrer la configuration de php.
Guide d'installation de MapServer et PHP Mapscript
8/16
Page : 8 / 16
2.3 Installation de PHP MapScript
2.3.1
A partir d’une distribution binaire
Téléchargement
Vous pouvez télécharger le fichier mapserver-4.6.1-win32-php5.0.5.zip ou plus récent sur
le site http://www.maptools.org/ .
Dans le cas présent nous allons utiliser l’archive mapserver-4.6.1-veremes.zip propre à la
formation. L’archive est déjà décompactée dans C:\mapserver\mapserver-4.6.1-veremes.
Installation de PHP_Mapscript
Copier le fichier php_mapscript_46.dll (contenu dans le sous-répertoire php) vers le
répertoire extension de php, c’est à dire C:\serveurs\ php-5.0.5-Win32\ext dans notre
exemple.
Guide d'installation de MapServer et PHP Mapscript
9/16
Page : 9 / 16
Configuration
Il est possible de demander le chargement automatique de mapscript en rajoutant la ligne
suivante dans le fichier php.ini (rechercher la chaîne "extension=" avec un éditeur de texte
pour trouver l'endroit ou ajouter le code):
extension=php_mapscript_46.dll
Tant que le chargement de l’extension n’est pas demandé de manière implicite, il faut
ajouter la commande de chargement dl("php_mapscript_46.dll"); pour pouvoir utiliser
PHP_MapScript.
Tests
Si vous n’avez pas demandé le chargement automatique de mapscript dans php.ini,
modifier le script test.php créé précédemment :
<html>
<?php
if(PHP_OS=="WINNT" || PHP_OS=="WIN32") {
dl("php_mapscript_46.dll");
}else{
dl("php_mapscript_46.so");
}
phpinfo(); ?>
</html>
Dans Internet explorer taper http://localhost/phptest/test.php
Le résultat doit maintenant montrer le module MapScript :
2.3.2
A partir du code source
Bien que le code source soit disponible, il n’est pas conseillé de s’aventurer dans la
compilation sous windows.
Guide d'installation de MapServer et PHP Mapscript
10/16
Page : 10 / 16
3. Linux
3.1 Préparation
3.1.1
Ressources
Toutes les ressources nécessaires à l'installation de veremap.pro sous linux sont
contenus dans le fichier veremap.pro-xxx.tar.gz
Jusqu'au 1er juin 2007 le numéro de version était de la forme x.x.x (1.2.4).
Depuis cette date, la version est un numéro sur 4 caractère (0056).
3.1.2
Procédure
Se logger sous root.
Copier le fichier veremap.pro-xxx.tar.gz dans un répertoire utilisateur par
exemple /home/veremes.
Lancer la commande suivante pour décompacter l'archive :
# tar xzf veremap.pro-1.2.4.tar.gz
3.1.3
Test
Le répertoire veremap.pro-1.2.4 doit avoir été créé. Il doit contenir des fichiers .sh et des
archives .tar.gz.
Ce répertoire est utilisé par la suite sous le nom INSTALL_DIR.
3.2 Installation de PHP
3.2.1
Procédure
Rentrer dans le répertoire INSTALL_DIR, puis, lancer le fichier install_php.sh.
# cd veremap.pro-1.2.4
# ./install_php.sh
Ce fichier exécute une série de commandes :




Décompactage, compilation et installation de la source bison (version 1.28)
Décompactage, compilation et installation de la source flex (version 2.5.31)
Décompactage, compilation et installation de la source libxml2 (version 2.6.11)
Décompactage de la source mysql (version 4.0.18)
Guide d'installation de MapServer et PHP Mapscript
11/16
Page : 11 / 16




Décompactage, compilation et installation de la source php (version 5.0.5)
Copie du CGI PHP dans le répertoire /cgi-bin/ d’Apache
Copie du fichier de configuration de PHP (php.ini)
Mise à jour du fichier du fichier de configuration d’Apache (httpd.conf)
N.B : la source de MySQL n’est utilisée que pour mener à bien l’installation de PHP 5.
Un fichier de log « install_nomSource.log » est généré pour chaque source utilisée dans
le répertoire INSTALL_DIR/source/.
3.2.2
Configuration
Deux fichiers doivent être configurés pour que PHP fonctionne :
httpd.conf : c’est le fichier de configuration d’Apache. Les lignes suivantes doivent y être
ajoutées :
Action phtml-script /cgi-bin/php-cgi.sh
AddHandler phtml-script .phtml
AddHandler phtml-script .php
DirectoryIndex index.phtml
php.ini : c’est le fichier de configuration de PHP. Il doit être stocké dans le répertoire créé
lors de la compilation de PHP (/usr/local/php-cgi-5.0.5/).
Ces deux fichiers sont mis à jour lors de l’exécution du fichier d’installation install_php.sh.
3.2.3
Test
Taper l’URL http://localhost/test/test.phtml dans le navigateur Web. Toutes les
informations sur PHP 5.0.5 doivent s’afficher.
En cas de problème, vérifiez que le répertoire INSTALL_DIR/html/test/ a bien été copié
dans la racine du serveur Web /var/www/html/ lors de l’exécution du fichier d’installation
install_php.sh.
test.phtml contient simplement :
<html>
<?php
phpinfo(); ?>
</html>
3.3 Installation de MapServer et PHP MapScript
3.3.1
Procédure
Lancer le fichier install_mapserver.sh.
# ./install_mapserver.sh
Guide d'installation de MapServer et PHP Mapscript
12/16
Page : 12 / 16
Ce fichier exécute une série de commandes :
 Décompactage, compilation et installation de la source jpegsrc (version 6.b)
 Décompactage, compilation et installation de la source zlib (version 1.1.4)
 Décompactage, compilation et installation de la source libpng (version 1.2.7)
 Décompactage, compilation et installation de la source freetype (version 2.1.7)
 Décompactage, compilation et installation de la source gd (version 2.0.22)
 Décompactage, compilation et installation de la source gdal (version 1.2.6)
 Décompactage, compilation et installation de la source proj4 (version 4.4.8)
 Décompactage, compilation et installation de la source curl (7.12.0)
 Décompactage, compilation et installation de la source mapserver (version 4.6.1)
 Copie de php_mapscript.so dans le répertoire /usr/local/php-cgi-5.0.5/extensions/
 Copie de mapserv dans le répertoire /var/www/cgi-bin.
Un fichier de log « install_nomSource.log » est généré pour chaque source utilisée dans
le répertoire /installDir/source/.
3.3.2
Configuration
Deux fichiers doivent être configurés pour que MapServer et PHP MapScript
fonctionnent :
httpd.conf : c’est le fichier de configuration d’Apache.
Il doit déjà contenir la ligne suivante :
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
php.ini : c’est le fichier de configuration de PHP. La ligne suivante doit y être ajoutée ou
vérifiée :
extension=php_mapscript.so;
Les fichiers httpd.conf et php.ini installés contiennent déjà ces lignes.
3.3.3
Test
Sous shell, tapez la commande : /var/www/cgi-bin/mapserv –v pour tester le CGI
Mapserver.
# /var/www/cgi-bin/mapserv –v
La liste des formats supportés en entrée (INPUT) et la liste des formats supportés en
sortie (OUTPUT) par le CGI Mapserver doit s’afficher.
Taper l’URL http://localhost/phptest/test.phtml dans le navigateur Web. Les informations
liées à PHP MapScript doivent s’afficher.
Guide d'installation de MapServer et PHP Mapscript
13/16
Page : 13 / 16
Guide d'installation de MapServer et PHP Mapscript
14/16
Page : 14 / 16