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