wrote by Rafael Marangoni, from Consultoria Linux team.
By default, on some distros, PostgreSQL will only accept connections from localhost. When you have only access from localhost (from localhost Apache, by example) everything is ok, but when you need that postgresql accepts connections for other hosts, you need to make some configs.
First of all, edit the postgresql.conf file (on CentOS the default location is /var/lib/pgsql/data/postgresql.conf).
nano /var/lib/pgsql/data/postgresql.conf
Search the following line:
listen_addresses = 'localhost'
Change it to:
listen_addresses = '*'
Secondly, you need to change the permissions inside pg_hba.conf file (on CentOS, the default location is /var/lib/pgsql/data/pg_hba.conf)
nano /var/lib/pgsql/data/pg_hba.conf
Include the following line (at the end of the file):
host username all 192.168.0.10/32 md5
Where:
username: it's the name of the postgres user
all: the database name (here we enabled all of them)
192.168.0.10/32: is the IP address/subnet to accept connections
md5: is the method of authentication (md5 requests password)