Next Previous Contents

## 2. Postgresql (version 8.0.1 minimum)

## 2.1 Installation

Soit avec des binaires préparés, soit à partir du code source

Le plus simple est d'utiliser les binaires de votre distribution, ne compiler ces programmes que si vraiment vous devez le faire ou que vous préfèrez avoir la dernière version disponible.

Si vous décidez de le compiler vous-même, les options suivantes fonctionnent

    ./configure -with-tk --with-python --with-perl --prefix=/ou_vous_voulez

## 2.2 Configuration et démarrage de PostgreSql

Comme d'habitude pour postgres, il faut tout d'abord définir, créer l'utilisateur postgres puis initialiser l'endroit où seront stocké vos données (variable env. PGDATA), exemple

> `

>     root#mkdir /data/psql
>     root#chown postgres /data/psql
>     root#su - postgres
>     postgres#initdb -D /data/psql
>     postgres#pg_ctl -D /data/psql -o '-i' start

> `

Il est impératif que dans le fichier postmaster.conf vous ayez les options

    tcpip_socket = true
    port=5432

D'autres options sont conseillées pour l'optimisation de Postgresql

ne pas oublier d'ajouter dans le PATH, l'endroit où se trouve les binaires de postgres

    ex:
    export PATH=$PATH:/opt/psql732/bin

Il est impératif d'avoir soit l'option -i soit la directive tcpip_socket=true , sinon le server HTTP ne pourra pas contacter PostgreSql.

Dans PGDATA,vous trouverez le fichier nommé pg_hba.conf qui vous permettra de régler la sécurité

Ce fichier doit au moins contenir la ligne:

    # TYPE  DATABASE    USER        IP-ADDRESS        IP-MASK           METHOD
    host    all         phpcompta   172.16.30.0         255.255.255.0   local

Il vaut mieux remplacer 172.16.30.0 par l'adresse du server HTTP, dans le cas où vous utilisez un VirtualHost avec une adresse IP, c'est cette adresse qu'il vous faudra mettre

## 2.3 Optimisation

Posgresql est une base de données très rapide, cependant, il vous faudra configurer pour pouvoir en bénéficier. Les paramètres par défaut sont prévus pour une machine qui n'a que 16 Mb de RAM... Donc, aller voir la documentation sur Postgresql.org, chapitre Run-time Configuration.

Les paramètres que vous pouvez utiliser si vous avez une machine d'au moins 256 Mb:

- Augmenter la zone mémoire pour les tri (dans postgres.conf) sort_mem = 8192; cette zone mémoire est important car elle a trait à la mémoire utilisée pour les tris et les jointures! attention ce paramètre donne la consommation mémoire par session !
- Faites tourner régulièrement vacumdb -a -z grâce au crontab(une fois par jour)
- Dans postgres.conf, les shared_buffers: calculées en page de 8Kb, la valeur par défaut est de seulement 64, ce qui correspond à 512Kb, une meilleure valeur est 640

## 2.4 Pour la sécurité

Vous pouvez ajouter la sécurité à votre server Postgresql en changeant dans pg_hba.conf. Mais avant de faire cela, ajoutez un mot de passe à vos utilisateurs avec la commande remplacer .1. par le nom de l'utilisateur et .2. par son mot de passe

    changement mot de passe
    alter user .1. password '.2.'

    Sécurité
    # TYPE  DATABASE    USER        IP-ADDRESS        IP-MASK           METHOD
    host    all         phpcompta   172.16.30.0         255.255.255.0   md5
    local    all         phpcompta   172.16.30.0         255.255.255.0   md5

Ensuite soit vous utilisez la variable d'environnement PGPASSWORD qui contient votre mot de passe soit avec le fichier .pgpass dont la syntaxe est

     host:port:database:username:password

N'oubliez pas de mettre ce fichier en mode 600 !!!! Pour executer sans demande de mot de passe host = localhost

Next Previous Contents