Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 15/07/2010 12:31:25
- tonton
- Membre
config postgres avec php
Bonjour je rencontre des souci de connection a postgresql pour installer des site en php sur mon serveur web dans un datacenter
j'utilise Centos 5.xx
Linux 2.6.18-194.8.1.el5 #1 SMP
postgresql8.4 du depot http://yum.pgsqlrpms.org/8.4/redhat/rhe … -$basearch
et php 5.2 http://www.jasonlitka.com/media/EL$rele … $basearch/
PHP 5.2.13 (cli) (built: Jun  2 2010 16:24:43)
mais en 5.1.16 du depot officiel meme souci
j'utilise phpPgMyadmin et la connection fonctionne 
J'utilise aussi pgAdmin3 depuis chez moi et ça se connect aussi 
mais ave le script de test pris dans un post precedent
<?php
ini_set('track_errors','on');
$conn = @pg_pconnect("host=/var/run/postgresql dbname=UneBase user=USER password=USERPWD");
echo "Connection result: ";
print_r($conn);
echo "<hr>";
if ($conn===false) {
    echo "Connection failed: ";
        print_r($php_errormsg);
            echo "<hr>";
            }
?>Connection result: 
Connection failed: pg_pconnect() [function.pg-pconnect]: Unable to connect to PostgreSQL server: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
ou pour localhost
Connection result: 
Connection failed: pg_pconnect() [function.pg-pconnect]: Unable to connect to PostgreSQL server: could not connect to server: Permission denied Is the server running on host "localhost" and accepting TCP/IP connections on port 5432?
pour pg_hba j'ai mis 
# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
# "local" is for Unix domain socket connections only
local   all         all                              trust
# IPv4 local connections:
host    all         all         127.0.0.1/32          trust
host    all         all         127.0.0.1/32          md5
hostssl    all         all         127.0.0.1/32          md5
# IPv6 local connections:
host    all         all         ::1/128               ident
#les hotes exterieur
host     all    robert   monip_adress/32          md5
hostssl  all    robert    monip_adress/32          md5
host     all    robert   monip_adress/32          trust
hostssl  all    robert   monip_adress/32          trust
host all robert monip_publicdistant/32 md5
et dans posgresql.conf j'accepet les connection reseaux (pgadmin se connect)
quel test devrai je faire pour comprendre d'ou vient mon pb  
j'ai rien dans  /var/lib/pgsql/data/pg_log/postgresql-Thu.log  autre que demmarrage arret 
cordialement 
Tonton
Hors ligne
#2 15/07/2010 13:47:27
- gleu
- Administrateur
Re : config postgres avec php
Vous n'avez rien dans les logs de PostgreSQL parce que le client n'arrive pas à s'y connecter. Le serveur web et le serveur PostgreSQL sont sur le même serveur (physique ou virtuel) ? si oui, quels sont les valeurs de listen_addresses et de port ?
Guillaume.
Hors ligne
#3 15/07/2010 14:45:25
- tonton
- Membre
Re : config postgres avec php
Oui j'ai le serveur web et postgresql sur la meme machine physique.
dans posgresql.conf
listen_addresses = 'localhost,IP.public.du.serveur'
port = 5432
ce qui me derange c'est que phpPgadmin fonctionne (apres yum install phpPgAdmin et la config de pg_hba)
En commande ça donne 
 php /var/www/html/test.php 
Connection result: Resource id #4<hr>
Hors ligne
#4 15/07/2010 15:21:52
- daamien
- damien clochard
Re : config postgres avec php
Quelques vérifications :
a/ Vérifier que le socket se trouvent bien à l'emplacement que vous annoncer : /var/run/postgresql
b/ les lignes qui matchent sur localhost ne sont pas cohérente entre IPv4 et IPv6
      host    all         all         127.0.0.1/32          trust
      host    all         all         ::1/128               identc/ essayez d'utiliser 127.0.0.1 plutot que localhost
d/ Beaucoup de ligne sont redondantes dans votre fichier pg_hba.conf. Par exemple :
  host     all    robert   monip_adress/32          md5
  hostssl  all    robert    monip_adress/32          md5le tag host inclue hostssl + hostnossl donc la seconde ligne est parfaitement inutile
Même chose pour
host    all         all         127.0.0.1/32          trust
host    all         all         127.0.0.1/32          md5Le fichier pg_hba.conf est déjà assez complexe à configurer ! Ne vous compliquez pas la tache avec des lignes redondantes.
Essayez de mettre en commentaire les lignes inutiles. Moins il y aura de lignes actives plus le débuggage sera simple.
damien clochard
http://dalibo.org | http://dalibo.com
Hors ligne
#5 15/07/2010 17:24:40
- tonton
- Membre
Re : config postgres avec php
a/ euh non c vrai y pas /var/run/postgresql  c'est necessaire ? 
dans /var/run j'ai 
-rw-r--r-- 1 root  root      5 jui 15 17:07 postmaster.5432.pid
meme un ps aux | grep postgresql ne renvoi rien 
et
ps aux | grep postgre renvoi entre autre 
/usr/bin/postmaster -p 5432 -D /var/lib/pgsql/data 
Il manque quelquechose ? 
b d / 
j'ai simplifier le fichier 
# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
# "local" is for Unix domain socket connections only
local   all         all                              md5
# IPv4 local connections:
host    all         all         127.0.0.1/32          md5
# IPv6 local connections:
host    all         all         ::1/128               md5
#les hotes exterieur
host     all    robert   addr.ip.du.serveur          md5
host     all    roger   monip_publicdistant/32         md5c/ j'ai aussi essayer avec 127.0.0.1
autre/ 
php /var/www/html/test.php
Connection result: Resource id #4<hr>  
ça c'est une erreur ou mon test c'est réellement connecté ?
Dernière modification par tonton (15/07/2010 17:25:11)
Hors ligne
#6 15/07/2010 17:50:32
- gleu
- Administrateur
Re : config postgres avec php
postmaster.5432.pid est le fichier PID, pas la socket Unix. Le résultat du ps est bon à priori. Le résultat de la commande PHP aussi (Resource id #X est le message normal quand la connexion est réalisée avec un script PHP).
Guillaume.
Hors ligne
#7 15/07/2010 18:00:51
- tonton
- Membre
Re : config postgres avec php
pourtant je rencontre tjs le souci
Warning: pg_pconnect() [function.pg-pconnect]: Unable to connect to PostgreSQL server: could not connect to server: Permission denied Is the server running on host "localhost" and accepting TCP/IP connections on port 5432? in /var/www/html/groupe/bin/core/functions.php  on line 1991Hors ligne
#8 15/07/2010 19:26:58
- tonton
- Membre
Re : config postgres avec php
je viens d'essayer sur ubuntu 10.04 impec
donc je rapproche mes deux fichiers posgresql.conf 
et deux différences qui si je les remplace empeche le redémarrage
unix_socket_directory = '/var/run/postgresql'
résolu en créant un dossier /var/run/postgresql propriétaire postgresl'autre difference
ssl = true                              # (change requires restart)c quoi le socket directory de postgresql 8.4.4 sur centos 5 (ou comment le savoir ? )
Que faut il ajouter pour activer le ssl support dans postgresql 8.4.4 ?? 
si quelqu'un sait ? 
tonton
Dernière modification par tonton (15/07/2010 19:40:38)
Hors ligne
#9 15/07/2010 20:48:09
- tonton
- Membre
Re : config postgres avec php
bon pour ceux qui suivent
apres la creation de /var/run/postgresql
et du certificat ssl le serveur redemmarre
mais ça ne resoud rien
Warning: pg_pconnect() [function.pg-pconnect]: Unable to connect to PostgreSQL server: could not connect to server: Permission denied Is the server running on host "localhost" and accepting TCP/IP connections on port 5432? in /var/www/html/groupe/bin/core/functions.php  on line 1991changer le socket dans postregsql.conf empêche le fonctionnement de phpPgAdmin aussi je reviens a l'ancien réglage : ' '
Hors ligne
#10 15/07/2010 22:22:51
- gngassam
- Membre
Re : config postgres avec php
c quoi le socket directory de postgresql 8.4.4 sur centos 5 (ou comment le savoir ? )
cherche le fichier ".s.PGSQL.5432" sur ton serveur, et remplace le chemin dans ton "host".
Hors ligne
#11 15/07/2010 23:01:18
- gleu
- Administrateur
Re : config postgres avec php
Par défaut, sur les distrib à base de RPM, c'est /tmp. Quant au SSL, il faut en effet avoir un certificat.
Guillaume.
Hors ligne
#12 16/07/2010 01:05:04
- tonton
- Membre
Re : config postgres avec php
ben ça passe
au lieu de localhost j'indique /tmp et l'install à lieu, la connection à la base a fonctionnée et les tables sont là ...
Ok Merci 
tonton
Dernière modification par tonton (16/07/2010 01:23:34)
Hors ligne
Pages : 1