Newsgroup: it.comp.www.php
Titolo: connessione a PostgreSQL

Non riesco a connettermi a PostgreSQL dagli script PHP.
Uso la seguente instruzione:
 $host = "localhost";
 $port = "5432";
 $dbname = "WebDB";
 $user = "postgres";
 $password = "PasswordDiPostgres";
 $connessione = pg_connect("host=$host port=$port dbname=$dbname user=$user 
password=$password")
Mi viene restituito il seguente errore:
Warning: pg_connect() unable to connect to PostgreSQL server: could not 
connect to server: Connection refused Is the server running on host 
localhost and accepting TCP/IP connections on port 5432? in 
/var/www/html/php/funzioni.php on line 27
Cosa devo fare?
-- 
Internet, ultima frontiera.
Questi sono i viaggi di un semplice messaggio
la sua missione è quella di esplorare router, nuovi gateway
alla ricerca di nuove forme di comunicazione e nuovi protocolli
per arrivare là dove nessuno è mai giunto prima.
Using M2, Opera's revolutionary e-mail client: 
http://www.opera.com/m2/

 /var/www/html/php/funzioni.php on line 27
di default il postmaster non accetta connessioni dall'esterno.
devi inserire l'opzione -i nello start del servizio.
(se non ricordo male).
ciao
-- 
punkarruso

 ciao
Cioè come dovrei fare?


 Cioè come dovrei fare?
indaghiamo insieme (così vedi come si fa a scoprire queste cose da solo):
il comando di start solitamente è pg_ctl:
------------------
$ pg_ctl --help
[...]
Usage:
   pg_ctl start   [-w] [-D DATADIR] [-s] [-l FILENAME] [-o "OPTIONS"]
[...]
Common options:
   -D DATADIR   location of the database storage area
[...]
If the -D option is omitted, the environment variable PGDATA is used.
Options for start or restart:
[...]
   -o OPTIONS              command line options to pass to the postmaster
                           (PostgreSQL server executable)
[...]
------------------
ok, allora vediamo le opzioni di postmaster (che può essere anche 
lanciato come alternativa a pg_ctl ma non è consigliato):
------------------
$ postmaster --help
Usage:
   postmaster [OPTION]...
Options:
[...]
   -i              enable TCP/IP connections
[...]
------------------
a-ah!
allora il comando sarà:
$ pg_ctl start -D /path/to/data -o -i
quindi, o starti a mano il postmaster ogni volta con questo comando 
(magari ti fai uno script "start_postgres" se ti vuoi dimenticare la 
sintassi) , oppure vai a cercare nei tuoi file in /etc/rc.d/init.d (o 
equivalente) lo script di start del servizio e aggiungi "-o -i" al 
comando di start.
tutto questo [OT] assolutamente gratis! ;-)
ciao
-- 
punkarruso

 ciao
bye


Prova una cosa per volta cosi' vedi dov'e' l'anomalia:
Intanto usa il normale "ps ax" per verificare che non ci sia un postmaster
in esecuzione
Nel caso ci sia dai
"pg_ctl stop -D $datadir"
per fermarlo
e ricominci con lo start che ti ha indicato punkarruso
a volte si "blocca" il file .pid
prova e eliminarlo e rilanciare il server pgsql
ovviamente tutto questo come utente postgres
ciao,
omar


Dopo aver killato il postmaster finalmente sono riuscito a connettermi col 
PHP.
A dire il vero mi dava ancora un problema col file pg_hba.conf ma grazie al 
cielo sono riuscito a risolverlo da solo.
Grazie a tutti per l'aiuto.


 PostgreSQL mi funziona bene.
se IT/OT ragionassero a cascata, allora:
- problemi hw
   - problemi installazione e configurazione OS
     - problemi installazione programmi affini (db, librerie)
     - problemi configurazione network
       - problemi installazione e configurazione php
         - problemi con scripts php ecc.
         - interfacciamento php con altri sw / libs
sarebbero tutti IT.
secondo me solo gli ultimi tre.
(cioè non chiedo qua come installare linux perché poi ci devo compilare php)
nel tuo caso il ng giusto era it.comp.software.database.
ciao
-- 
punkarruso

 ciao
E' un discorso ineressante, ma potremmo avere ragione entrambi, dipende dal 
punto di visto, io dovevo far parlare il PostgreSQL col PHP, non sapendo di 
chi fosse la colpa ho preferito comunicare il problema sul NG del PHP xkè è 
più facile trovare gente che si intenda sia di PHP che di DB (infatti ci 
sono molti msg che riguardano problemi col MySQL), invece su un ng di DB è 
più difficoltoso trovare gente che si intenda di DB.
Poi alla fine ho scoperto xhe il problema riguardava il PostgreSQL xò a 
priori non lo sapevo.
Cmq l'importante è che ora sono riuscito a far funzionare il tutto, e vi 
ringrazio ancora per l'aiuto.


> su un ng di DB è più difficoltoso trovare gente che si intenda di DB.
                                                                   ^^^^
Ovviamente volevo scrivere PHP :-P
