ligar postgres com PHP
Arquivos de Configuração
O postgres possui basicamente 2 arquivos de configurações responsáveis pela conexão, eles são:
- postgresql.conf aqui você precisa definir que o seu banco de dados irá receber conexão através de TCP/IP, até a versão 7.9 do postgres esta configuração era feita assim:
tcpip_socket = trueA partir da versão 8 isso é feito assim:listen_addresses = ‘*’ port = 5432 - pg_hba.conf este é o arquivo que define quem pode acessar o que e de qual forma: para permitir que qualquer IP possa acessar qualquer banco adicione esta linha no arquivo host all all 0.0.0.0 0.0.0.0 password Se quiser que apenas 1 IP específico possa acessar a máquina então host all all 200.200.200.200/32 password A palavra password define que para você acessar o banco tem que digitar a senha, existe a palavra trust que diz ao banco para nao pedir senha então tenha cuidado com este tipo de configuração
Após mexer nestes dois arquivos reinicie o banco. Para acessar o seu banco através do terminal use o comando: psql –h 200.200.200.200 –U postgres –d banco Fique atento aos firewall pois eles podem barrar a sua conexão com o banco, e mais uma dica para que a conexão possa ser estabelecida no CentOS é necessário desativar o SELinux, que por padrão na instalação fica ativado: vim /etc/sysconfig/selinux e configure o SELINUX=disabled
Exemplo de Conexão PHP para Teste
try {
$db = new PDO("pgsql:host=localhost dbname=datacentro user=postgres password=data1234");
$sql = 'SELECT * FROM pessoa';
foreach ($db->query($sql) as $row) {
print $row['cod'] . "\t";
print $row['nome'] . "\t";
}
} catch (PDOException $e) {
print $e->getMessage();
}
die("fim");
Referência
http://battisti.etc.br/2009/09/28/postgres-permission-denied-is-server-running/http://www.cyberciti.biz/faq/postgresql-remote-access-or-connection/
http://dickrips.wordpress.com/2009/01/16/apache-php-postgresql-no-centos-e-fedora

