Bienvenido(a) a Alcance Libre 31/01/2023, 03:53

Alcance Libre Foros

 Índice del foro > Todo acerca de Linux > Programación y desarrollo New Topic Post Reply
 Problema de conexión entre PHP y Postgresql
Tópico anterior Tópico siguiente
   
daom11
 03/17/09 12:23PM (Leído 12,969 veces)  

Participa mucho

Estado: desconectado
Forum User

Identificado: 03/12/07
Mensajes: 61
Que tal amigos, tengo el siguiente problema.

tengo instalado un servidor centos 5 con php 5.2.9 y con postgres 8.0.1 (se que es una versión vieja pero esa me pidieron) y php-pgsql, todo esto lo instalé desde YUM excepto postgres que lo compilé.

bueno el chiste es que tengo un script en php que hace una consulta sencilla a la base de datos e imprime los resultados.

si lo ejecuto de esta manera

$php script.php

en pantalla me imprime los resultados sin problemas, pero cuando lo invoco así

http://localhost/script.php

no me arroja absolutamente nada, solo una página en blanco

ya revisé configuraciones y al parecer todo está correcto y el servidor si puede ver sin problemas el archivo script.php ya que si pongo algún echo en el código SI imprime la cadena que le ponga.

les dejo el código de mi script por si es necesario.

PHP Formatted Code

<?php
   $host_db='localhost';
   $port_db='5432';
   $base="base";
   $usuario="usuario";

   $conex = pg_connect ("host=$host_db port=$port_db dbname=$base user=$usuario");
   $sql = "SELECT * FROM tabla";
   $sql_id = pg_Exec ($conex, $sql);
   $tupla = pg_Fetch_Array ($sql_id, 0);
   print_r($tupla);
?>
 


postgres está configurado que pg_connect no necesite password.

Espero me puedan ayudar.
Saludos...
 
Profile Email
 Quote
Joel Barrios Dueñas
 03/18/09 12:20AM  

Admin

Estado: desconectado
Site Admin

Identificado: 02/17/07
Mensajes: 1761
Localización:Mexico
Accede al guión que te está dando el problema y publica en este espacio las últimas 20 o 30 líneas de /var/log/httpd/error_log, inmediatamente después de acceder al guión. De esta manera podremos ayudarte revisando los errores.Pudiera ser que PHP no se instalo adecuadamente o que te falta el paquete php-pgsql.

También puedes editar /etc/php.ini y temporalmente modificar lo siguiente:
PHP Formatted Code
display_errors = Off

Cambiando Off por On:
PHP Formatted Code
display_errors = On

Reinicia Apache y vuelve a ejecutar tu guión. Esto debe permitirte ver desde el navegador que errores se están generando y que impiden ver el guión. Dejalo como estaba cuando hayas terminado tu diagnóstico.
 
Profile Email Website
 Quote
daom11
 03/19/09 09:48AM  

Participa mucho

Estado: desconectado
Forum User

Identificado: 03/12/07
Mensajes: 61
Hola Joel gracias por tu respuesta.

ya active en el php.ini la directiva para mostrar los errores y el que aparece en el explorador y en el log de apache es el siguiente


Warning: pg_connect() [function.pg-connect]: Unable to connect to PostgreSQL server: could not connect to server: Permission denied Is the server running on host "localhost" and accepting TCP/IP connections on port 5432? in /var/www/htdocs/script.php on line 9


ahora tengo entendido que en las versiones anteriores a la 8.0 de postgres se le tenía que activar la directiva

tcpip_socket = true


pero que en las versiones nuevas bastaba con cambiar lo siguiente

listen_addresses = 'localhost'


por

listen_addresses = '*'


ya hice esto y también tengo instalado el php-pgsql y el mod_auth_pgsql ambos los instalé con yum.

gracias.
 
Profile Email
 Quote
daom11
 03/19/09 01:39PM  

Participa mucho

Estado: desconectado
Forum User

Identificado: 03/12/07
Mensajes: 61
Hola joel, he resuleto el problema, solo deshabilite el SELinux y listo.

Gracias.
Saludos...
 
Profile Email
 Quote
Jaime M. Tan Nozawa
 03/19/09 04:49PM  

Miembro regular

Estado: desconectado
Forum User

Identificado: 03/31/07
Mensajes: 114
Localización:Peru
Justo ahora ando metido con SeLinux por cuestiones paranoicas de seguridad.

Para tener el Selinux Enforced y usar el PHP con BD ,Segun creo, solo tienes q activar los siguiente booleanos del selinux:

# setsebool -P httpd_can_network_connect true
# setsebool -P httpd_can_network_connect_db true

Es todo!!!!

Saludos desde Perú

Jaime M. Tan Nozawa
RHCE - MCSA

Mi blog de PHP: http://phpexperto.blogspot.com
 
Profile Email Website
 Quote
Contenido generado en: 0.53 segundos New Topic Post Reply
 Todas las horas son CST. Hora actual 03:53 AM.
Tópico normal Tópico normal
Tópico Pegado Tópico Pegado
Tópico bloqueado Tópico bloqueado
Mensaje Nuevo Mensaje Nuevo
Tópico pegado con nuevo mensaje Tópico pegado con nuevo mensaje
Tópico bloqueado con nuevo mensaje Tópico bloqueado con nuevo mensaje
Ver mensajes anónimos 
Los usuarios anónimos pueden enviar 
Se permite HTML Filtrado 
Contenido censurado