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 ident
c/ 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 md5
le 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 md5
Le 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 md5
c/ 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 1991
Hors 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 postgres
l'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 1991
changer 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