Introduction
Cet aticle va esssayer de synthétiser une méthodologie efficace et simple pour mettre en place :
- PostgresSQL
- PHPPGAdmin
Installation
On cherche donc à installer plusieurs choses :
- PostgresSQL 8.1 : le serveur et un client
- La librairie PostGres pour PHP5</li<
- phpPGAdmin
Pour cela, APT is my geïcha ;)
sudo apt-get install postgresql-8.1 php5-pgsql
Pour phpPGAdmin, inutile de l'APTiser :
cd ~
wget http://switch.dl.sourceforge.net/sourceforge/phppgadmin/phpP(...)
tar -xvzf phpPgAdmin-4.0.1.tar.bz2
rm phpPgAdmin-4.0.1.tar.bz2
mv phpPgAdmin-4.0.1 /var/www/votresite..homeip.net/admin/db/phpPgAdmin
chown -R www-data:www-data /var/www/votresite..homeip.net/admin/db/phpPgAdmin
Configuration
Postgres
A noter : Attention, la configuration de Postgres risque vous faire pousser des cheveux blancs que vous vous arracherez par frénétiquement par poignées. Postgres bénéficie d'un système d'authentification trés bien fait... trop peut être aux vues des problèmes que vous vous aurez sans doute si vous bidouillez un peu trop !
Bon, donc vient le temps de la configuration de la base : ceci se fait en se connectant à Postgres.
Comme
root
n'a pas le doit d'accéder au système Postgres, et que le système a été monté avec le user postgres
, étant donné que le mot de passe de cet user est (et doit) rester inconnu, il suffit pour root
de se faire passer pour postgres
:
vieuxpaf:~# whoami
root
vieuxpaf:~# su postgres
postgres@vieuxpaf:/root$ psql
Bienvenue dans psql 8.1.0, l'interface interactive de PostgreSQL.
Tapez: \copyright pour les termes de distribution
\h pour l'aide-mémoire sur les commandes SQL
\? pour l'aide-mémoire sur les commandes psql
\g ou terminez avec un point-virgule pour exécuter une requête
\q pour quitter
postgres=# SELECT version();
version
--------------------------------------------------------------------------------------------------------------
PostgreSQL 8.1.0 on i486-pc-linux-gnu, compiled by GCC cc (GCC) 4.0.3 20051111 (prerelease) (Debian 4.0.2-4)
(1 ligne)
Bien. Continuons maintenant par nous créer un user à nous ; mieux vaut ne pas donner trop de droits à ce petit gars là s'il est utilisé depuis l'extérieur ; laissons ses accreditations au minimum (bien que vous puissiez le créer
superuser
si vous le souhaitez !)
create user with login encrypted password '<votre mdp>'
Une fois cet utilisateur créé, modifions la configuration de Postgres afin de réaliser les authentification par MD5 et non plus par correspondance aux utilisateurs UNIX. Pour cela, il est nécessaire d'éditer
/etc/postgresql/8.1/main/pg_hba.conf
et de fixer la valeur suivante :
# "local" is for Unix domain socket connections only
local all all md5
Ceci nous permet alors de nous connecter via la commande :
psql -U steph -W -d postgres
Si vous souhaitez finalement accéder à votre base Postgres depuis un intranet, vous devrez éditer le fichier
/etc/postgresql/8.1/main/pg_hba.conf
et le modifier par exemple ainsi pour permettre à 192.168.0.3 (masque classe C, 255.255.255.0) d'y accéder via authentification MD5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
host all all 192.168.0.3/24 md5
phpPGAdmin
Tout d'abord, il faut éditer
phpPgAdmin/conf/config.inc.php
afin de faire de créer la DSN vers notre serveur :
$conf['servers'][0]['desc'] = 'PostgreSQL vieuxpaf';
$conf['servers'][0]['host'] = '127.0.0.1';
$conf['servers'][0]['port'] = 5432;
$conf['servers'][0]['defaultdb'] = 'postgres';
A noter : si vous utilisez le module mod-security avec Apache2, faites attention à être à jour (consultez le /var/log/apache2/monsite.error.log)
Fin
Finalement...euh... et bien c'est tout ! phpPGAdmin fonctionne ! (waouh(c) inside ;))
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.