2010-08-14 10 views
5

EDIT: Je viens de me rendre compte que cette question pourrait être mieux adaptée à ServerFault. Au lieu de le copier, un modérateur s'il vous plaît le déplacer? Merci.Impossible de se connecter à PostgreSQL avec PHP pg_connect()

J'ai vérifié php-info, et l'extension Postgresql est là (pg_connect() n'est pas indéfini). Je suis également capable de me connecter à postgresql en utilisant psql sur localhost (j'ai édité mon fichier pg_hba.conf de manière appropriée). Voici le code qui ne fonctionne pas:

<?php 
$dbconn = pg_connect("host=localhost port=5432 dbname=mydb user=myuser password=mypass") or die('Could not connect: ' . pg_last_error()); 
?> 

Ce code se traduit simplement par « Impossible de se connecter: » affiché dans le navigateur.

J'ai vérifié mon journal apache, et voici le message d'erreur correspondant:

PHP Warning: pg_connect() [<a href='function.pg-connect'>function.pg-connect</a>]: 
Unable to connect to PostgreSQL server: could not connect to server: Permission 
denied\n\tIs the server running on host &quot;localhost&quot; and accepting\n\tTCP/IP 
connections on port 5432? 

Comment puis-je corriger/débugger?

Editer: Je suis sur Centos 5.4 btw.

Répondre

10

ne pouvait pas se connecter au serveur: Autorisation refusée

Edit: Je suis sur CentOS 5.4 btw.

Vérifiez /var/log/audit/audit.log. Les chances sont que vous frappez une règle SELinux.

+2

Merci, c'était ça. Je viens de faire 'setenforce 0' et ça a marché. – ehsanul

+7

Vous pouvez également exécuter setsebool -P httpd_can_network_connect 1 – garg