Installation de postgresql/postgis et geoserver sur Ubuntu 18

Cet article est destiné surtout aux utilisateurs Windows qui se retrouvent, à un moment donné, confrontés au besoin d’installer Postgresql et geoserver sur un serveur Linux.

A un moment donné, il faut bien faire le saut entre son PC et un véritable serveur. Une fois installé (postgresql et geoserver) l’administration et le travail se fgeront à distance avec les mêmes outils que sur le PC: pgAdmin pour Postgresql et l’interface WEB pour Geoserver.

Mais, entre les deux, il faut bien se lancer dans le monde Linux. Voici ce qu’il faut faire pour passer au mieux cette étape.

On va supposer que vous avez réussi à vous connecter sur votre serveur (je vous conseille d’utiliser Putty sur Windows), et que vous avez des droits d’administration.

Installation de Postgresql et Postgis

Sous Linux vous avez deux méthodes pour installer Postgresql: en installant un paquet ou manuellement en téléchargeant les fichier binaires. Nous verrons ici la première méthode qui, non seulement est plus simple, mais aussi elle vous permet des mises à jour beaucoup p^lus simples.

Le principe est simple:vous référencez un entrepôt correspondant à votre version système contenant l’installation de Postgresql et vous demandez son installation.

Voici comment faire ceci sous Ubuntu 18.04 qui est la dernière LTS (mais ça marche aussi avec la version 19).

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt bionioc-pgdg main" >> /etc/apt/sources.list'
wget --quiet -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | sudo apt-key add -
sudo apt update

La première ligne ajoute l’entrepôt à la liste d’entrepôts disponibles sur votre machine. La deuxième ajoute la clé d’accès. La troisième met à jour le contenu de la commande d’installation des paquets (apt).

Vous pouvez maintenant installer Postgresql et Postgis:

sudo apt install postgresql-11
sudo apt install postgresql-11-postgis-2.5
sudo apt install postgresql-11-pgrouting

La première ligne installe Postgresql. La deuxième installe Postgis.

La troisième ligne est là juste pour l’exemple. Vous pouvez installer d’autres extensions selon vos besoins. Ici l’exemple installe l’extension pgrouting qui permet de calculer des itinéraires.

C’est fini, l’installation est terminée.

Avant de vérifier que tout c’est bien passé, il faut savoir que l’installation de postgresql crée un nouvel utilisateur sur votre serveur, nommé postgres. Il ne faut pas confondre cet utilisateur système avec l’utilisateur postgres dans Postgresql. Comme vous, vous avez un identifiant système qui vous permet de vous connecter sur le serveur, et aussi un identifiant Postgresql qui vous permet de vous connecter à vos bases de données.

Avant de continuer, il vaut mieux compléter cet utilisateur avec un mot de passe. Si non, vous serez bloqué si pour une opération le système a besoin de valider cet utilisateur.

Pour affecter un mot de passe à l’utilisateur système postgres:

sudo passwd postgres

Vous devrez rentrer deux fois le mot de passe choisi.

Maintenant, vous pouvez tester que votre installation s’est bien passée.

sudo su - postgres
psql
\conninfo

Si vous avez ce type de message, c’est que Postgresql est bien installé.

Profitez maintenant pour rentrer le mot de passe du rôle postgres dans Postgresql:

ALTER ROLE postgres ENCRYPTED PASSWORD 'mot de passe';

Pour sortir de postgresql, tapez \q.

Paramétrage de Postgresql

Pour pouvoir vous connecter à distance il faut modifier quelques paramètres.

Tout d’abord dans le fichier postgresql.conf il faut activer l’écoute de toutes les adresses (par défaut postgresql n’écoute que la machine serveur).

Allez dans le répertoire d’installation (/etc/postgresql/11/main/ dans cet exemple) et ouvrez le fichier postgresql.conf

Recherchez la ligne (en commentaire) listen_addresses et modifiez la en

listen_addresses = '*' 

(Touche Inser pour ouvrir le mode édition, touche Escape pour en sortir, :wq pour enregistrer et sortir de Vim)

Le deuxième fichier à modifier est pg_hba.conf, situé dans le même répertoire. Ce fichier valide les adresse ip et les noms d’utilisateur qui essayent de se connecter à Postgresql

Vous allez ajouter une ligne

host    all             all             0.0.0.0/0               md5

pour autoriser toutes les adresses IP à se connecter à condition de disposer d’un nom d’utilisateur postgres et d’un mot de passe. Votre fichier doit ressembler à ça:

Vous pourrez modifier ultérieurement ce fichier pour restreindre les accès à certaines bases, à certaines plages d’adresses, à certains utilisateurs,etc.

Redémarrez Postgresql pour que les modifications soient prises en compte:

sudo service postgresql restart

A partir de là, vous pouvez vous connecter avec pgAdmin à distance.

Installation de Geoserver

Geoserver a besoin de l’environnement Java Runtime. S’il n’est pas déjà installé sur votre serveur, vous l’installez avec la ligne de commande suivante:

apt-get install openjdk-8-jre 

Aussi, il vous faut disposer de l’application unzip. Si elle n’est pas déjà installée, vous l’installez avec la commande suivante:

sudo apt install unzip

Pour installer Geoserver:

sudo mkdir -p /var/www/geoserver
cd /var/www/geoserver
sudo wget https://netcologne.dl.sourceforge.net/project/geoserver/GeoServer/2.15.2/geoserver-2.15.2-bin.zip
sudo unzip geoserver-2.15.2-bin.zip
sudo mv geoserver-2.15.2/* .
sudo echo "export GEOSERVER_HOME=/var/www/geoserver" >> ~/.profile
. ~/.profile

Avec ces lignes, vous créez un répertoire /var/www/geoserver, vous téléchargez Geoserver version 2.15.2 et vous l’installez dans ce répertoire.

Pour démarrer Geoserver, allez dans le répertoire bin (cd bin) et tapez la commande:

sudo sh startup.sh

Pour vérifier que l’installation c’est bien terminée, à partir de votre PC, dans un navigateur, tapez l’adresse suivante:

http://adresse ip de votre serveur:8080/geoserver/web

Vous devez avoir la page suivante

Si vous souhaitez vous connecter, l’username par défaut est admin et le mot de passe geoserver. Vous serez invité à changer le mot de passe par défaut lors de votre connexion.

Revenons sur la console de votre serveur. Pour arrêter geoserver tapez simplement ctrl-c.

Il vous reste à configurer Geoserver pour qu’il démarre automatiquement lors de chaque reboot.

Vous devez tout d’abord créer un utilisateur geoserver

adduser --system geoserver

Et donner la propriété à cet utilisateur sur les parties modifiables de l’installation. Dans notre exemple on a installé geoserver dans /var/www/geoserver

chown -R geoserver /var/www/geoserver/data_dir
chown -R geoserver /var/www/geoserver/logs

Et autoriser la lecture de tous les fichiers

chmod -R o+rX /var/www/geoserver

Allez dans le répertoire etc et créez un fichier appelé geoserver.service

cd /var/www/geoserver/etc
sudo vim geoserver.service

Vous allez copier dans ce fichier les lignes suivantes, après vérification des chemins et noms des répertoires et fichiers: (touche Inser pour pouvoir rentrer du texte)

[Unit]
Description=GeoServer
After=network.target

[Service]
User=geoserver
Environment=JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
Environment=GEOSERVER_HOME=/var/www/geoserver
ExecStart=/var/www/geoserver/bin/startup.sh
ExecStop=/var/www/geoserver/bin/shutdown.sh

[Install]
WantedBy=multi-user.target

Pour sortir de vim tapez Escape, puis :wq

Pour activer le service tapez

systemctl enable /var/www/geoserver/etc/geoserver.service
sudo systemctl start geoserver.service

La première ligne n’est à exécuter qu’une fois (systemctl créera un lien symbolique vers le fichier).

Voilà. A chaque démarrage du système, Geoserver sera lancé.

A partir de là, vous pourrez travailler à distance, depuis votre poste de travail.

Si cet article vous a intéressé et que vous pensez qu'il pourrait bénéficier à d'autres personnes, n'hésitez pas à le partager sur vos réseaux sociaux en utilisant les boutons ci-dessous. Votre partage est apprécié !

4 thoughts on “Installation de postgresql/postgis et geoserver sur Ubuntu 18

  1. Bonjour,
    > Dans notre exemple on a installé geoserver dans /var/www/geoserver

    > chown -R geoserver /var/geoserver/etc/data_dir
    > chown -R geoserver /var/geoserver/etc/logs
    Il doit manquer www/ avant geoserver dans les deux commandes

  2. Allez on y est presque :
    « Dans notre exemple on a installé geoserver dans /var/www/geoserver »
    chown -R geoserver /var/www/geoserver/data_dir
    chown -R geoserver /var/www/geoserver/logs »

    Le « /etc » est de trop.

    Et pour ma part (je suis pas spécialiste) mais la ligne suivante n’a pas fonctionnée (sur une version ubuntu 16.04) :

    sudo systemctl start geoserver.service

    Après quelques recherches, j’ai rajouté dans le fichier geoserver.service

    [Unit]

    au dessus de « Description=GeoServer »

    Puis j’ai copié le fichier dans le répertoire

    /etc/systemd/system/

    (peut-être un lien symbolique aurait été plus adéquat, mais j’ai pas testé) et après avoir taper la commande suivante

    sudo systemctl enable geoserver.service

    Le service se lance bien après un redémarrage et tout marche nickel. Merci beaucoup pour ce(s) tutoriel(s) toujours très utile(s).

    1. Merci! En effet, dans le copier-coller [Unit] était passé à la trappe. Et j’ai sauté le dernier pas en oubliant systemctl enable /var/www/geoserver/etc/geoserver.service qui crée le lien symbolique.
      C’est corrigé dans l’article.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *