Forum Linux.debian/ubuntu Postgres sous Debian

Posté par  .
Étiquettes :
0
21
oct.
2006
Article du 13/03/2006

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.