jueves, 8 de mayo de 2014

Habilitar PostgreSQL con WAMP Server

Continuando con la serie de posts sobre PostgreSQL, vamos a incluir uno para habilitar el soporte de PostgreSQL con WAMP Server. Si tratáis de hacer uso de la función pg_connect() sin activar este soporte aparecerá el siguiente error:

Fatal error: Call to undefined function pg_connect() in ...

El proceso debería ser bastante sencillo, pero la presencia de un bug en la versión 2.X de WAMP Server lo complica un poco (aunque os daremos la solución más adelante).


Partimos del supuesto de un servidor WAMP ya instalado, si no sabéis cómo hacerlo tenéis un tutorial aquí: http://alcasoft.blogspot.com.es/2011/12/instalacion-de-un-servidor-local-wamp.HTML

Una vez instalado, la activación de los módulos de Apache y extensiones de PHP es relativamente sencilla: hacemos clic en el icono de WAMP en la barra de tareas > PHP > Extensiones de PHP y activamos las siguientes:

  • php_pdo_pgsql
  • php_pgsql



Al reiniciar los servicios de WAMP debería funcionar, pero si tratamos de hacer uso de la función sigue apareciendo el error:


Si verificáis las extensiones habilitadas (con la función phpinfo() dentro de una página PHP), podréis comprobar que pgsql no se encuentra activo pese a haberlo activado en el interfaz gráfico de WAMP.

Esto se debe a un bug en WAMP. PostgreSQL hace uso de la librería libpq.dll encargada de ejecutar consultas SQL en Postgre. Esta librería debería estar en la carpeta bin de la instalación de Apache, pero se encuentra en la carpeta de PHP.

La solución es sencilla: copiar esa librería a la carpeta correcta:

  • Origen: C:\wamp\bin\php\php5.3.10
  • Destino: C:\wamp\bin\apache\Apache2.2.21\bin
Las rutas obviamente pueden cambiar dependiendo del directorio raíz de vuestra instalación de WAMP y de la versión del mismo, pero espero que os sirvan de ejemplo.

Reiniciamos los servicios de WAMP y comprobamos de nuevo con phpinfo():

 
Ya aparece la extensión activa y podremos hacer uso de las funciones de PHP para PostgreSQL desde nuestro código.

11 comentarios:

Recomendaciones de Alcasoft