Catégories
Tutoriel

Déploiement de PostgreSQL 9.1 et PostGis 2.1 sur Cent OS 7 Server

Qu’est ce que PostGIS ?

PostGIS est une extension (plugin) du SGBD PostgreSQL, qui active la manipulation d’informations géographiques (spatiales) sous forme de géométries (points, lignes, polygones), conformément aux standards établis par l’Open Geospatial Consortium. Il permet à PostgreSQL d’être un SGBD spatial (SGBDs) pour pouvoir être utilisé par les systèmes d’informations géographiques.

De nombreux logiciels peuvent être utilisés avec PostGIS comme moteur de base de données, tels que ArcGIS, QGIS, CartoDB, MapInfo, TerraLib…

Par exemple, il est utilisé par OpenStreetMap, un projet collaboratif visant à créer une carte libre et gratuite du monde entier

1) Installation de CentOS 7

Premièrement, nous allons commencer par télécharger la dernière image ISO de CentOS 7 sur le site officiel.

Vous pouvez choisir la « Minimal ISO », qui contient tout ce qui est nécessaire pour un serveur, mais rien de superflu.

Ensuite, nous pouvons lancer l’installation, une VMs typique avec 2 vCores, 2 GB de Ram et 40 Gb de disque dur est suffisante pour le moment.

centos-p-1

L’installation est entièrement graphique, aucune connaissance particulière n’est donc requise :

centos-p-2

N’oublier pas de fixer le mot de passe « root » !

centos-p-3

Après un reboot, notre CentOS est fonctionnel, néanmoins nous devons activer l’interface réseau (celle-ci étant inactive par défaut) et renseigner les paramètres IP.

Pour cela, nous pouvons donc nous connecter en console en tant que « root », puis lancer la commande “nmtui” :

centos-p-4

centos-p-5

centos-p-6

A ce point nous pouvons passer à l’étape suivante.

2) Installation de PostgreSQL/PostGIS

PostgreSQL est disponible dans le depot par défaut de Yum sur CentOS 7, mais sans le choix de la version, ce qui ne convient pas dans notre cas.

Nous allons donc ajouter le dépôt officiel “PostgreSQL 9.3” :

[root@vm-centos1 ~]# rpm -ivh http://yum.postgresql.org/9.3/redhat/rhel-7-x86_64/pgdg-centos93-9.3-2.noarch.rpm

Ensuite nous pouvons lancer l’installation:

[root@ vm-centos1 ~]# yum install postgresql93 postgresql93-server postgresql93-libs postgresql93-contrib postgresql93-devel

Puis avant de lancer l’installation de PostGIS, nous allons ajouter le dêpot « EPEL » qui contient les dépendance dont a besoin PostGIS :

[root@ vm-centos1 ~]# rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm

Puis c’est partis, ne pas être effrayé par le nombre de dépendance qui s’installeront de fait :

[root@ vm-centos1 ~]# yum install postgis2_93

3) Configuration

Avant toute chose, nous devons d’abord initialiser la base : (attention, n’executer cette commande qu’une seule fois)

[root@ vm-centos1 ~]# /usr/pgsql-9.3/bin/postgresql93-setup initdb
Initializing database ... OK

Si vous souhaitez que PostgreSQL se lance automatiquement au démarrage du serveur, vous pouvez lancer cette commande :

[root@ vm-centos1 ~]# systemctl enable postgresql-9.3
Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql-9.3.service to /usr/lib/systemd/system/postgresql-9.3.service.

Si vous souhaitez pouvoir vous connecter à la base depuis une autre machine, vous devez modifier les 2 fichiers suivants tels qu’indiqué ci-dessous :

[root@ vm-centos1 ~]# vi /var/lib/pgsql/9.3/data/postgresql.conf
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------
# - Connection Settings -
listen_addresses = '*'
g
[root@ vm-centos1 ~]# vi /var/lib/pgsql/9.3/data/pg_hba.conf
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
#host    all             all             127.0.0.1/32            ident
host    all             all             all                     md5
# IPv6 local connections:
host    all             all             ::1/128                 ident
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     postgres                                peer
#host    replication     postgres        127.0.0.1/32            ident
#host    replication     postgres        ::1/128                 ident

Ensuite, nous pouvons lancer le service PostgreSQL :

[root@ vm-centos1 ~]# systemctl start postgresql-9.3

4) Créer une base de test

Pour finir, nous allons créer une base de test.

Pour cela, nous devons basculer en tant qu’utilisateur « Postgres » :

[root@localhost ~]# su postgres
bash-4.2$

Et ensuite, nous allons créer un utilisateur et une base :

[root@localhost /]# su postgres
bash-4.2$ createuser --pwprompt --encrypted gisuser
Enter password for new role:
Enter it again:
bash-4.2$ createdb --encoding=UTF8 --owner=gisuser gis.test
bash-4.2$ psql -d gis.test -f /usr/pgsql-9.3/share/contrib/postgis-2.1/postgis.sql
bash-4.2$ exit

Ensuite, vous pouvez tester la connexion depuis une console :

centos-p-7

Ou depuis un outil graphique, tel que “PgAdmin” :

centos-p-8

C’est tout pour aujourd’hui !