Installation de FGS Mapserver sur Ubuntu

FGS Mapserver permet d'installer un serveur Apache et Mapserver avec le support de l'ECW. Des modules peuvent être rajoutés (exemple PostGreSQL) et sont disponibles sur le site.

L'installation créé un environnement virtuel. De ce fait, l'installation est simple (aucune dépendance n'est à installer) et rapide sur n'importe quelle distribution Linux.

Pourquoi installer cette version de Mapserver?
Les paquets par défaut disponibles dans les dépôts ne supporte pas l'ECW. Il faudrait dès lors recompiler plusieurs librairies et logiciels ce qui n'est pas très intéressant et assez long à réaliser. Vous aurez ainsi les dernières mises à jour de Mapserver si vous mettez à jour les packages FGS sans avoir à recompiler à chaque nouvelle version.

Prérequis :
Ce tuto a été testé sur Ubuntu 8.04 et Ubuntu 8.10 (server et desktop). il suppose comme toutes les distributions Linux que le compte root ne soit pas activé. Les commandes ne doivent pas être lancées en sudo sauf pour les deux premières mentionnées. "user" définit le compte utilisateur créé lors de l'installation d'Ubuntu


1) Créer les répertoires qui vont accueillir l'installation et donner les droits correspondants :
sudo mkdir /opt/Mapserver
sudo chown user:user /opt/Mapserver

2) Récupérer le package d'installation :
cd /tmp
wget http://www.maptools.org/dl/fgs/releases/1.0/1.0.0/self-installers/fgs-mapserver_5.2.2-fgs_1.0.0-linux-i386.bin

3) Executer l'installeur :
sh fgs-mapserver_5.2.2-fgs_1.0.0-linux-i386.bin
Vous devez obtenir ceci :


Appuyez sur la touche Entrée et spécifier votre répertoire d'accueil : /opt/Mapserver/fgs



La procédure se poursuit et vous demande le port à utiliser : Utiliser les standad du web (8080, 8008, 8000)



A la fin de l'installation un écran de réussite devrait apparaître vous indiquant les manipulations à réaliser :



4) Tester si l'installation est réussie et démarrer FGS Mapserver les prochaines fois :
. /opt/Mapserver/fgs/setenv.sh
Notez qu'un espace est bien présent entre "." et "/"
La réponse devrait être :
* FGS runtime ready in '/opt/Mapserver/fgs', use fgs command.
Lancer apache :
fgs start
Réponse :
+ Starting 'apache':
Maintenant il faut vérifier si le lancement d'apache à réellement fonctionné. Pour cela ouvrez un navigateur (firefox par exemple) et taper dans la barre d'adresse (remplacer "port" part le port que vous avez spécifié lors de l'installation
http://localhost:port/cgi-bin/mapserv
Si tout fonctionne correctement, le message ci-dessous devrait s'afficher :

"No query information to decode. QUERY_STRING is set, but empty".



5) Utilisation de FGS Mapserver

Pour des besoins futurs (avant d'utiliser les commandes fgs il faut toujours établirt les paramètres d'environnement via le lancement du setenv.sh

Arrêter Apache :
fgs stop
Redémarrer Apache :
fgs stop ; fgs start

Démarrer FGS automatiquement au lancement du server
Dans la doc et à la fin de l'installation, il est écrit de faire cela
echo "su user -c \"( . /opt/Mapserver/fgs/setenv.sh ; fgs start )\"" >> /etc/rc.d/rc.local
Or ce la ne fonctionne pas ! En effet le repertoire /etc/rc.d n'existe pas sur Ubuntu donc le système ne peut pas charger le fichier rc.local au lancement du serveur
Pour cela il convient de faire la manip mais sur un rc.local valide :
echo "su user -c \"( . /opt/Mapserver/fgs/setenv.sh ; fgs start )\"" >> /etc/init.d/rc.local

Répertoire accessible au web (équivalant de /var/www lors d'une installation standard d'Apache).
Placer ici vos différentes pages html ou framework (cartoweb, pmapper, etc ...)
/opt/Mapserver/fgs/www/htdocs/

6) Configurations optionnelles

a) Instalaltion de modules

Méthode générale :
fgs install module:version adresse_du_module

Personnellement je préfères télécharger le smodules localement sur le poste pour pouvoir lancer l'installation. Ce qui donne pour certains modules que j'ai installé : (curl c'est pour cartoweb !)

fgs install php_curl-module:5.2.5 fgs-php_curl-module-5.2.5-linux-i386.tar.gz
fgs install php_odbc-module:5.2.5 fgs-php_odbc-module-5.2.5-linux-i386.tar.gz
fgs install php_pgsql-module:5.2.5 fgs-php_pgsql-module-5.2.5-linux-i386.tar.gz
fgs install postgresql-lib:8.3.1 fgs-postgresql-lib-8.3.1-linux-i386.tar.gz
fgs install postgis-lib:1.3.2 fgs-postgis-lib-1.3.2-linux-i386.tar.gz


b) Configuration du php.ini

Editer le fichier

/opt/Mapserver/fgs/etc/httpd/conf/php5.ini.template

Modifier :

1) Resources
(Permet d'ajouter une plus grande valeur en mémoire pour des sorties en pdf ...)
C'est un peu beaucoup ce que j'ai mis mais c'est à vous d'adapter

;;;;;;;;;;;;;;;;;;;

; Resource Limits ;

;;;;;;;;;;;;;;;;;;;


max_execution_time = 90 ; Maximum execution time of each script, in seconds

max_input_time = 90 ; Maximum amount of time each script may spend parsing request data

memory_limit = 120M ; Maximum amount of memory a script may consume (8MB)


2) Extensions (adapter en focntion de ce que vous installez)

;;;;;;;;;;;;;;;;;;;;;;

; Dynamic Extensions ;

;;;;;;;;;;;;;;;;;;;;;;

extension=php_curl.so

extension=php_pgsql.so


Redemarrer fgs



3) Changer le port d'Apache

Editer le fichier /opt/Mapserver/fgs/etc/fgs/pkgs/apache-base/apache.conf et mettez ce que vous voulez comme port


L'utilisation semble assez facile, si jamais je n'aurais été pas assez clair, vous pouvez laisser un commentaire.

Commentaires

  1. Ton tuto marche très bien. Merci. Moi j'ai un soucis avec mon ancienne version de php dès que je lance setenv.sh.

    RépondreSupprimer

Enregistrer un commentaire

Posts les plus consultés de ce blog

How-to run QGIS 2 and QGIS 3 at the same time in Archlinux or Manjaro

Disposer du support de l'ECW sous Ubuntu

Mise à jour Paquet ECW pour Ubuntu