PHP non può connettersi a PostgreSQL su CentOS 7

Ho CentOS 7 in esecuzione in VirtualBox su OSX. Apache, PHP 5.4 e PostgreSQL 9.2 sono tutti in esecuzione. Ma, quando il mio (semplice) script php tenta di connettersi a PostgreSQL, non funziona:

Avviso: pg_connect (): imansible connettersi al server PostgreSQL: imansible connettersi al server: authorization negata Il server è in esecuzione sull'host "127.0.0.1" e accetta le connessioni TCP / IP sulla port 5432? in /var/www/html/pg.php alla row 7

controlli:

  • Apache è in esecuzione
  • PHP va bene, phpinfo () mi dice che le funzioni di PostgreSQL sono disponibili
  • PostgreSQL 9.2 è in esecuzione
  • psql può connettersi al database usando localhost o 127.0.0.1 e anche 192.168.178.111
  • pgAdmin sul mio Mac può connettersi a questo database usando l'indirizzo IP 192.168.178.111
  • iptables è stato distriggersto
  • pg_hba.conf è stato modificato per accettare tutte le connessioni senza alcuna password (stupido, lo so):

ospita tutto il trust 0.0.0.0/0

Ma php non riesce a connettersi …. Questo è il mio script:

<?php ini_set('display_errors', 1); error_reporting(E_ALL); echo 'hello world!'; $conn = pg_connect('host=127.0.0.1 port=5432 user=postgres dbname=postgres'); ?> 

Funzionano le connessioni interne (psql), anche le connessioni esterne funzionano (pgAdmin su un mio laptop), ma la connessione php non funziona …

Cosa sta andando storto? Cosa mi manca?

Probabilmente SELinux sta bloccando la connessione al tuo database.

Assicurati di impostare il valore boolean corretto per consentire alla tua applicazione web di comunicare con il database:

 sudo setsebool -P httpd_can_network_connect_db 1