5
07 mai 2015

L'idée de ce billet est venue à la suite d'un cours de webmapping délivré à des étudiants à l'université. Je me suis rendu compte qu'il était souvent difficile pour des étudiants de comprendre la logique client -> serveur, lorsqu'on travaille en localhost, le client et le serveur étant la même machine dans ce cas présent. J'ai donc demandé à ces étudiants de créer un compte gratuit sur le serveur mutualisé Alwaysdata afin qu'ils puissent mieux comprendre le fonctionnement d'une connexion distante :

  • à une base de données spatiales
  • à un serveur/moteur cartographique

Ce billet s'adresse donc à un public "débutant" en webmapping et plus particulièrement à des étudiants, qui désirent découvrir et comprendre le fonctionnement client->serveur. En ce sens, les étapes d'installation des deux briques logicielles PostGIS et MapServer seront très détaillées (pas à pas).

Etape #1: Création du compte et informations de connexion

Avant toute chose, vous devez vous créer un compte gratuit sur le serveur mutualisé Alwaysdata pour mener à bien la suite des opérations. Choisissez le "Pack Gratuit" qui donne accès à:

  • 10Mo d'espace
  • 64Mo de mémoire
  • 1Go de trafic mensuel

Concernant le nom de votre compte, choisissez un nom simple, de préférence sans accents ni caractères spéciaux (espace, etc.).

Une fois votre compte créé, vous pouvez accéder à votre première page web, à l'adresse suivante:

http://nom_de_votre_compte.alwaysdata.net/

Pour plus d'informations n'hésitez pas à consulter la page d'aide et le forum directement sur le site d'Alwaysdata.

Pour vous connecter à votre espace serveur via le protocole FTP (File Transfer Protocol), vous avez deux possibilités:

Je vous recommande la seconde solution.

Hôte : ftp-nom_de_votre_compte.alwaysdata.net
Identifiant : Votre nom de compte
Mot de passe : Votre mot de passe
Port : 21

Pour plus d'informations, consulter la page des informations de connexion.

Etape #2: Installation de PostGIS

PostgreSQL/PostGIS est installé par défaut chez Alwaysdata, il est cependant nécessaire de l'activer depuis l'interface de gestion de votre compte. Voici les quelques étapes que vous devez suivre :

1. Connectez vous à votre compte depuis l'interface d'administration d'Alwaysdata:

2. Accédez à l'onglet "PostgreSQL" depuis l'espace "Base de Données"

3. Cliquez sur le bouton "Ajouter une base de données"

4. Configurez les différents paramètres

  • Le nom de votre base de données doit obligatoirement être préfixé par le nom de votre compte suivi d'un "_". Je vous propose "geobase" comme nom de votre base pour tester.
  • Laissez les options d'encodage par défaut (c'est-à-dire en_US.utf8)
  • Cochez la case PostGIS, afin d'activer la cartouche spatiale de PostgreSQL
  • Donnez vous tous les droits d'accès à votre base

5. Vous pouvez ajouter un ou des utilisateurs à votre base dans le menu "Gestion des utilisateurs"

6. Configurez les différents paramètres:

  • Le nom de votre nouvel utilisateur doit obligatoirement être préfixé par le nom de votre compte suivi d'un "_".
  • Choisissez un "mot de passe"
  • Définissez lui les droits sur vos différentes bases de données.

7. Vérifiez que votre base à bien été créée en vous connectant à l'adresse suivante: https://phppgadmin.alwaysdata.com/

8. Vous devriez obtenir la page suivante avec le nom de votre base de données "geobase".

La présence des deux tables "geometry_columns" et "spatial_ref_sys", vous indique que la cartouche spatiale PostGIS est bien installée.

Etape #3: Installation de MapServer

MapServer est également installé par défaut chez Alwaysdata, il est cependant nécessaire de la déclarer au sein de votre compte depuis une connexion SSH. Voici les quelques étapes que vous devez suivre :

1. Connectez vous à votre compte depuis l'interface d'administration d'Alwaysdata

2. Accédez à l'onglet "SSH" depuis l'espace "Accès distant"

3. Nous allons activer le mode SSH qui n'est pas activé par défaut. Cliquez sur le bouton modifier.

4. Cliquez sur la case à cocher "Activé" pour activer le SSH.

5. Théoriquement votre SSH est désormais activé.

6. Sur le même principe que les utilisateurs de la base de données PostGIS, vous pouvez ajouter des utilisateurs SSH.

7. Basculez sur l'espace SSH d'Alwaysdata: https://ssh.alwaysdata.com/anyterm.html

8. Tapez votre login puis appuyer sur la touche "Entrée" puis votre "mot de passe" (vous disposez de 60 secondes pour taper votre "login" et "mot de passe" avant un "time out"). Vous obtenez la fenêtre suivante :

9. Tapez la commande : cd cgi-bin

10. Tapez ensuite la commande : ln -s /usr/lib/cgi-bin/mapserv mapserv

 Si vous souhaitez comprendre ce qu'effectue cette commande, consultez cette page.

11. Vérifiez que l'installation de MapServer s'est bien faite en vous rendant à l'adresse suivante :

http://votre_nom_de_compte.alwaysdata.net/cgi-bin/mapserv?

Si vous obtenez le message: "No query information to decode. QUERY_STRING is set, but empty.", Mapserver est bien installé!

Après cette première étape d'installation, nous allons désormais pouvoir manipuler ces deux briques logicielles. Ce sera l'objet de futurs billets de blog.

A propos de l'auteur: 
Jérémie Ory

Géographe de formation, je me suis rapidement tourné vers la cartographie et la géomatique.

Commentaires

Très intéressant. J'en avais besoin. Ca m'aide beaucoup. Bonne suite.

Bonjour et merci pour le tutoriel très simple et complet.
vivement la suite du tuto sur geoserver

bonjour Jérémie,
tout d'abord merci pour ce tutoriel.
J'ai donc suivi ce la démarche mais quand je lance la commande :
ln -s /usr/lib/cgi-bin/mapserv mapserv
j'obtiens un message d'erreur disant :
sigislv_admin@ssh:~/cgi-bin$ ln: creating symbolic link `mapserv': Permission denied
as-tu une idée d'où cela peut-il venir ?

Bonjour Lewis,

Je me permets de répondre, mais Jérémie ajoutera/modifiera si besoin :)

Typiquement ce message d'erreur est synonyme d'un problème de droit.

Est-ce que l'utilisateur courant peut écrire dans le dossier dans lequel tu es situé ?

A bientôt

Arnaud

Bonjour Lewis,

C'est en effet un problème de droit! Il doit certainement y avoir un problème de configuration des droits! Je tinvite à te rapprocher du forum d'Alwaysdata, ils sont hypers réactifs, ils te guideront et trouveront la réponse à ton problème.

Bon courage.