Foros del Web » Programando para Internet » PHP »

PHP+PostgreQSL: Internal Server Error 500

Estas en el tema de PHP+PostgreQSL: Internal Server Error 500 en el foro de PHP en Foros del Web. Hola, Después de llevar unas cuantas horas buscando y no haber encontrado nada aclarativo, comento aquí mi problema. Me gustaría utilizar PostgreSQL desde PHP, pero ...
  #1 (permalink)  
Antiguo 09/04/2012, 01:07
 
Fecha de Ingreso: marzo-2012
Mensajes: 21
Antigüedad: 12 años, 8 meses
Puntos: 0
PHP+PostgreQSL: Internal Server Error 500

Hola,

Después de llevar unas cuantas horas buscando y no haber encontrado nada aclarativo, comento aquí mi problema.

Me gustaría utilizar PostgreSQL desde PHP, pero por lo visto no tengo todo bien instalado, ya que me falla al intentar conectar con la BD (supongo que es eso, porque comento la línea de la conexión a la BD y no me sale el Internal Server Error).

En el fichero php.ini e descomentado las líneas siguiente y he guardado:
extension=php_pdo_pgsql.dll
extension=php_pgsql.dll

Pero al mirar la configuración de PHP no me sale como habilitada PostgreSQL.

Me he bajado el One Click Installer de la página de Postgres y he creado la BD (desde el prompt de Postgres puedo lanzar consultas contra la BD y funcionan).

Alguien sabría decirme qué estoy haciendo mal?

Muchas gracias =)
  #2 (permalink)  
Antiguo 09/04/2012, 02:22
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 14 años, 2 meses
Puntos: 331
Respuesta: PHP+PostgreQSL: Internal Server Error 500

Utiliza phpinfo() para comprobar que tienes las extensiones habilitadas.
Luego, comprueba que tienes efectivamente los archivos de las extensiones en el sitio correcto.
En el php.ini puedes habilitar la opción SHOW_STARTUP_ERRORS o similar para ver qué pasa en el arranque. Para que se vean los errores en el browser tienes que habilitarlos:
Código PHP:
Ver original
  1. ini_set('display_errors', 1);
A partir de aquí, utiliza las funciones pg_last_error() y similar para ver qué pasa. NO comentes la linea que da error, mas bien, ejecútala y comprueba los errores.
Saludos
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 09/04/2012, 06:45
 
Fecha de Ingreso: marzo-2012
Mensajes: 21
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: PHP+PostgreQSL: Internal Server Error 500

Hola repara2,

Eso que me has dicho lo tengo puesto en el script de php (en este nolo tenía puesto todavía). Me da un error:
Call to undefined function pg_pconnect() in /Library/WebServer/Documents/usuarios.php on line 17
Donde la línea 17 es --> $dbconn = pg_pconnect("dbname=bd");

Estoy convencido que tiene que ser algo de que la BD de Postgres no está bien activada en el Apache (no he recompilado) en el httpd.conf.

Muchas gracias.

PD: Utilizo Mac OS

Última edición por Lord_Herman; 09/04/2012 a las 07:04
  #4 (permalink)  
Antiguo 09/04/2012, 08:28
 
Fecha de Ingreso: marzo-2012
Mensajes: 12
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: PHP+PostgreQSL: Internal Server Error 500

Fijate si no es un problema de permisos/propietario/grupo.
  #5 (permalink)  
Antiguo 09/04/2012, 09:38
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 14 años, 2 meses
Puntos: 331
Respuesta: PHP+PostgreQSL: Internal Server Error 500

Call to undefined function pg_pconnect() in /Library/WebServer/Documents/usuarios.php on line 17 efectivamente no tienes activada la extensión. Comprueba los errores de inicio de Apache y php a ver qué te dice, saludos
__________________
Fere libenter homines, id quod volunt, credunt.
  #6 (permalink)  
Antiguo 09/04/2012, 11:27
 
Fecha de Ingreso: marzo-2012
Mensajes: 21
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: PHP+PostgreQSL: Internal Server Error 500

Me rindo,

Después de estar mirando todo el día, he llegado a la conclusión que lo que tengo que hacer es recompilar php, cosa que no tengo ni idea, y mira que he estado mirando.

En algún sitio tengo que añadir la línea --with-pgsql[=DIR], donde DIR es el directorio donde está instalado PostgreSQL.

Indico lo que he ido haciendo hasta ahora por si he de deshacer algo.

Habilitar PHP --> En el fichero que ya viene con MAC OS /etc/apache2/httpd.conf habilito el módulo de PHP (descomento las líneas adecuadas). Hasta aquí todo perfecto, he estado programando PHP y me ha funcionado todo.
Habilitar PostgreSQL --> En el fichero /etc/php.ini descomento las líneas
extension=php_pdo_pgsql.dll
extension=php_pgsql.dll

Me he descargado el instalador para MAC de PostgreSQL que hay en la página oficial, y se me ha instalado en /Library/PostgreSQL

Ahora es cuando se supone que debo recompilar PHP añadiendo la línea --width-pgsql[=DIR], pero no sé qué fichero de PHP debo recompilar ni cuál es el directorio que le tengo que decir donde está Postgres.

Adjunto todos los directorios que pienso que son los que hacen falta por si alguien me puede ayudar.

Muchas gracias.
  #7 (permalink)  
Antiguo 10/04/2012, 00:33
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 14 años, 2 meses
Puntos: 331
Respuesta: PHP+PostgreQSL: Internal Server Error 500

No creo que haga falta recompilar, simplemente desinstala y vuelve a instalar, puedes instalar los paquetes que te hacen falta por separado: http://www.google.com/search?client=...utf-8&oe=utf-8
__________________
Fere libenter homines, id quod volunt, credunt.

Etiquetas: 500, internal, server, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:18.