Saludos, estoy trabajando en un sistema con PostgreSQL y PHP, mi maquina de desarrollo corre con Windows 7, y hasta allí el sistema funciona perfectamente, el problema es que ya lo subí a un servidor en Producción el mismo que tiene Centos 6.0 , Postgresql 9, PHP5 y un servidor Apache,
YA habilité los respectivos permisos de los archivos pg_hba.conf y postgresql.conf, Cree un nuevo usuario de base de datos y le asigne todos los permisos, el problema se da a continuación:
En mi maquina de desarrollo Win7. Puedo conectarme al servidor a través del PGAMIN, o sea, los permisos de los archivos pg_hba.conf y postgresql.conf funcionan aparentemente bien, pero al cargar la aplicación desde un navegador web no se puede conectar a la Base de datos…
Mi maquina tiene la IP 10.0.2.12 y el servidor 10.0.2.150,, puedo conectarme desde la maquina Cliente a través del PGADMIN pero al acceder vía web a esa dirección http://10.0.2.150/apps/nomina me sale que:
Failed to connect to bd_nomina at localhost. Error: Database connection failed
Uso el mismo usuario y clave con el que me conecto a través de PGADMIN.
Alguien de ustedes puede compartirme su experiencia, ya tengo dos días dándole vuelta ha esto. Deshabilite el Firewall del servidor, y hasta lo he formateado 3 veces.. pero sigue el mismo problema,, puedo conectarme desde fuera del servidor,, pero no localmente..
Saludos cordiales
Esta es la configuración de los archivos:
Pg_hba.cong
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all ident
# IPv4 local connections:
host all all 127.0.0.1/32 md5
host all all 0.0.0.0 0.0.0.0 md5
# IPv6 local connections:
host all all ::1/128 ident
host all all 0.0.0.0 0.0.0.0 md5
postgresql.conf
listen_addresses = '*'
password_encryption = on
Re: Habilitar acceso local PostgreSQL 9.0
Lun, 12/12/2011 - 17:34 — doctoreHola clsolorzano.
Varias cosas:
1. Mi consejo inicial es que quites las líneas:
y des acceso únicamente a las IPs que necesites.
2. Supongo que, por lo que comentas, al invocar la URL de nóminas ejecutas un script en PHP. Si es así, una forma de saber un poco más acerca de lo que está pasando utilizando este mismo lenguaje, podría ser:
$conexion = @pg_connect ("host=IP_BD user=USUARIO_BD password=CLAVE_BD dbname=NOMBRE_BD"); $mensajeError = error_get_last(); if (isset ($mensajeError) && !empty ($mensajeError) && !empty ($mensajeError['message'])) { preg_match ("/(?:\bpg_connect\b\(\))(.*)/i", $mensajeError['message'], $coincidencias); if (isset ($coincidencias) && !empty ($coincidencias) && isset ($coincidencias[1])) echo $coincidencias[1]; }3. Otra opción es irnos al log de PostgreSQL y ver lo que está pasando. Para ello debes buscar en postgresql.conf el valor de log_directory (recuerda que también debes tener activado el log en dicho archivo) y ver realmente qué está ocurriendo.
Un saludo.
Enviar nuevo comentario