Sistema Operativo ALDOS
Dezoft

Si algunos de nuestros foros, manuales, ALDOS, paquetería o proyectos te han resultado de ayuda, apreciaremos mucho nos apoyes con un donativo.

 Índice > Todo acerca de Linux > Programación y desarrollo Nuevo tema Publicar Respuesta
 Problema de conexión entre PHP y Postgresql
Tema anterior Tema siguiente
   
daom11
Publicado en 17/03/09 06:23 (Leído 12322 veces)  

Participa mucho
Forum User

Inscrito: 12/03/07 Publicaciones: 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...
 
Perfil
 Citar
Joel Barrios Dueñas
Publicado en 18/03/09 06:20  

Admin
Site Admin

Inscrito: 17/02/07 Publicaciones: 1743
País: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.
 
Perfil Sitio Web
 Citar
daom11
Publicado en 19/03/09 03:48  

Participa mucho
Forum User

Inscrito: 12/03/07 Publicaciones: 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.
 
Perfil
 Citar
daom11
Publicado en 19/03/09 07:39  

Participa mucho
Forum User

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

Gracias.
Saludos...
 
Perfil
 Citar
Jaime M. Tan Nozawa
Publicado en 19/03/09 10:49  

Miembro regular
Forum User

Inscrito: 31/03/07 Publicaciones: 114
País: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
 
Perfil Sitio Web
 Citar
Contenido generado en: 0,43 segundos Nuevo tema Publicar Respuesta
 Todas las horas son UTC. Hora actual 08:12 .
Tema normal Tema normal
Tema persistente Tema persistente
Tema cerrado Tema cerrado
Nueva publicación Nueva publicación
Persistente con nueva publicación Persistente con nueva publicación
Cerrado con nueva publicación Cerrado con nueva publicación
Ver publicaciones anónimas 
Usuarios anónimos pueden publicar 
Se permite HTML Filtrado 
Contenido censurado