Vous n'êtes pas identifié(e).

#1 20/06/2012 12:38:06

youssef
Membre

problème PDO

bonjour à tous 

j'ai un problème à me connecter avec PDO à ma base postgres sur une machine CentOS 

mon code est le suivant

                        $hostname = "localhost";
                        $database = "maBase";
                        $username = "monUser";
                        $password = "monPwd";
                        $this->db = new PDO('pgsql:host='.$hostname.';dbname='.$database, $username, $password);
                        $this->db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );
                        return $this->db;


les mêmes scripts sur une autre machine sous Mac os x et utilisant MAMP, marche sans problème.

faut il configurer quelque chose sur lamachine Cent OS que j'ai oublié de faire 

NB : en consultant le phpinfo()
je vois que la partie postgreSQL est affiché et le PDO est activé aussi

Merci à vous

Hors ligne

#2 20/06/2012 16:00:49

rjuju
Administrateur

Re : problème PDO

Bonjour,
y a-t-il un message d'erreur php ? Sinon dans le log postgresql. La configuration de votre serveur autorise bien cette connexion ?

Hors ligne

#3 20/06/2012 16:13:20

youssef
Membre

Re : problème PDO

le message  erreur php que je reçois est le suivant :

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[08006] [7] could not connect to server: Permission denied Is the server running on host "localhost" and accepting TCP/IP connections on port 5432?
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/pg_req/class/dbConnect.class.php:24 Stack trace: #0 /var/www/html/pg_req/class/dbConnect.class.php(24): PDO->__construct('pgsql:host=loca...') #1 /var/www/html/pg_req/class/dbConnect.class.php(44): Connexion->connect() #2 /var/www/html/pg_req/urgent.php(24): dbConnect->__construct() #3 {main} thrown in /var/www/html/pg_req/class/dbConnect.class.php on line 24

Hors ligne

#4 20/06/2012 16:15:11

rjuju
Administrateur

Re : problème PDO

Le serveur est bien sur la même machine que votre serveur http, sur le port 5432 ?
Le user de connexion est bien autorisé (pg_hba.conf) à se connecter sur la base choisie ?

Hors ligne

#5 20/06/2012 16:20:28

youssef
Membre

Re : problème PDO

oui tout est  ok

le même serveur sur la même machine
le port est bien 5432 ( utilisé par pgAdmin III et ça marche très bien  )
le même user et mot de passe utilisé par pgAdmin III

Hors ligne

#6 20/06/2012 18:08:16

rjuju
Administrateur

Re : problème PDO

La connexion se fait en tcp ou en socket unix ou les 2 ?

Hors ligne

#7 20/06/2012 21:43:48

youssef
Membre

Re : problème PDO

hummm

aucune idée, comment vérifier  ?

Hors ligne

#8 20/06/2012 22:04:46

rjuju
Administrateur

Re : problème PDO

Quelle chaine de connexion avez-vous rentré sur pgAdmin ?
Sinon regardez les lignes renseignées dans le pg_hba.conf


Vous pouvez enlever le host='.$hostname dans votre chaîne de connexion pdo voir si cela vous permet de vous connecter.

Hors ligne

#9 21/06/2012 08:55:03

youssef
Membre

Re : problème PDO

je crois que par les deux  tcp et spcket unix  hum
dans mon pg_hba.conf j'ai :


# "local" is for Unix domain socket connections only
local   all             all                                     md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5

Hors ligne

#10 21/06/2012 10:46:40

kenrio
Membre

Re : problème PDO

dans le php à la place de mettre localhost vous avez testé de mettre 127.0.0.1 ?

Hors ligne

#11 21/06/2012 12:06:13

youssef
Membre

Re : problème PDO

OUi
j'ai aussi essayer de mettre l'adresse ip de la machine
mais rien

Dernière modification par youssef (21/06/2012 16:55:54)

Hors ligne

#12 21/06/2012 12:08:36

kenrio
Membre

Re : problème PDO

sinon il faut logguer toutes les requêtes de postgres et comme vous verrez comment la requête de php arrive, il doit y avoir un truc non valable.

Hors ligne

#13 21/06/2012 16:56:31

youssef
Membre

Re : problème PDO

vous voulez dite vérifier le log de postgres ?

Hors ligne

#14 21/06/2012 17:34:07

kenrio
Membre

Re : problème PDO

ouai trouver la log de connexion/erreur et voir réellement ce qu'il y a, ça se trouve c'est une erreur stupide et c'est le meilleur moyen de trouver sans perdre de temps.

Dernière modification par kenrio (21/06/2012 17:34:16)

Hors ligne

#15 27/06/2012 09:26:40

youssef
Membre

Re : problème PDO

Bonjour

juste pour vous informer que mon problème est résolu, il était du un SELinux qui bloquait les connexions  de php

solution  : si ce n'est pas un serveur de prod, et plus rapidement voir http://blog.nicolargo.com/2007/06/activ … linux.html
si non pour plus de détails  voir  : http://linux.die.net/man/8/httpd_selinux

bon courage à tous

Hors ligne

Pied de page des forums