Installer PostgreSQL sous CentOS

De wikidavenne
Aller à : navigation, rechercher
Hdr left.png
CENTOS logo small.png

Voici la procédure à suivre au 15/10/2016 avec la version 9.6 de PostgreSQL et CentOS 7 je considère que vous avez déjà installé Apache (httpd).

les élements ci-dessous sont à réaliser en root ou sudo.

Des informations utiles se trouvent sur : ce Site.

Installation

tout d'abord installer le repository de la version de PostgreSQL https://yum.postgresql.org/repopackages.php

rpm -Uvh http://yum.postgresql.org/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
yum -y update

puis installer les packages

yum -y install postgresql96-server postgresql96-contrib

initialiser la base de données

/usr/pgsql-9.6/bin/postgresql96-setup initdb

Configurer le serveur

systemctl enable postgresql-9.6
systemctl start postgresql-9.6
firewall-cmd --permanent --zone=public --add-port=5432/tcp
ou
firewall-cmd --permanent --zone=public --add-service=postgresql
firewall-cmd --reload
setsebool -P httpd_can_network_connect_db 1

configurer postgresql

se connecter à postgresql

su - postgres
psql

Définir un mot de passe pour le user postgres

alter role postgres with login;
\password postgres

Ajouter le Admin Pack

CREATE EXTENSION adminpack;
\q

configurer le fichier pg_hba.conf : vi /var/lib/pgsql/9.6/data/pg_hba.conf

modifier ident => md5

personnellement j'ajoute les lignes suivantes car mes machines sont virtualisées avec Virtualbox.

host	all	all 192.168.0.0/24	md5
host 	all	all	10.0.2.0/24	md5

la première ouvre les possibilités de connexion à mon réseau local en mode connexion par pont la seconde ouvre les connexions lorsque l'instance virtuelle est paramétré en mode nattage (très utile dans un environnement de production en ne permettant d'ouvrir que les ports utiles de la machine virtuelle).

redémarrer postgreSQL pour vérifier si on a fait une erreur

systemctl restart postgresql-9.6

Configurer le fichier postgresql.conf : vi /var/lib/pgsql/9.6/data/postgresql.conf retirer les # de commentaire et modifier comme suit :

#listen_addresses = 'localhost'  devient  listen_addresses = '*'
#port = 5432                     devient   port=5432

on redémarre pour vérifier

systemctl restart postgresql-9.6

Installation de phpPgAdmin

la procédure implique que vous avez déja installé Apache (httpd)

yum -y install phpPgAdmin

configurer Apache afin que phpPgAdmin soit accessible : vi /etc/httpd/conf.d/phpPgAdmin.conf

Alias /phpPgAdmin /usr/share/phpPgAdmin
#
<Location /phpPgAdmin>
   <IfModule mod_authz_core.c>
       # Apache 2.4
       Require all granted
       #Require host example.com
   </IfModule>
   <IfModule !mod_authz_core.c>
       # Apache 2.2
       Order deny,allow
       Allow from all
       # Allow from .example.com
   </IfModule>
</Location>

Configurer PhpPgAdmin afin de se connecter à distance : vi /etc/phpPgAdmin/config.inc.php changer les lignes suivantes comme suit:

$conf['servers'][0]['host'] = ;        =>  $conf['servers'][0]['host'] = 'localhost';
$conf['extra_login_security'] = true;    =>  $conf['extra_login_security'] = false;
$conf['owned_only'] = false;             =>  $conf['owned_only'] = true;

Etape finale : on relance les deux services

systemctl restart postgresql-9.6
systemctl restart httpd