XAMPP Call to undefined function ldap_connect()

Para activar la librería LDAP en cualquier entorno Windows debemos seguir los siguientes pasos:

  1. Activar la extensión en el archivo php.ini
  2. Agregar a la variable de sistema PATH la ruta de PHP.

Cito el manual de PHP

Para que esta extensión funcione, hay unos ficheros DLL que deben estar disponibles en el sistema de Windows PATH. Para más información en como hacer esto, vea la FAQ titulada "Como añadir mi directorio PHP en el PATH de Windows". Aunque copiar los ficheros DLL desde el directorio PHP al directorio del sistema de Windows también funciona (porque el directorio del sistema por defecto es el PATH del sistema), esto no se recomienda. Esta extensión requiere que los siguientes ficheros estén en el PATH: libeay32.dll y ssleay32.dll

Las versiones anteriores de PHP 4.3.0 requieren adicionalmente libsasl.dll.

Para activar la librería en el php.ini lo único que tenemos que hacer es descomentar (eliminar el ; inicial) la siguiente línea ;extension=php_ldap.dll.

Los pasos para agregar la ruta de PHP (en mi caso C:\xampp\php) son los siguientes (en mi caso un Windows Server 2008 R2)

  • Panel de Control y abra el icono Sistema (Inicio -> Configuración -> Panel de Control -> Sistema, o directamente Inicio -> Panel de Control -> Sistema para Windows XP/2003+)

  • Vaya a la pestaña Avanzado

  • Clic en el botón 'Variables de Entorno'

  • Revise la parte de 'Variables de Sistema'

  • Encuentre la entrada Path (de seguro tendrá que desplazarse para encontrarla)

  • Doble clic en la entrada Path

  • Ingrese su directorio de PHP al final de todo, con un ';' antes (por ej., ;C:\php)

  • Presione OK

  • Reiniciar luego de seguir los pasos de arriba para garantizar que los cambios a PATH se apliquen.

Aquí os dejo gráficamente el proceso para agregar al PATH la ruta de PHP con sus librerías y poder activar LDAP correctamente en entornos Windows (de 32 o 64 bits indistintamente)

Sin-título-1

Sin-título-2

Sin-título-3

Sin-título-4

Nota: el PATH no se actualiza automáticamente cuando utilizamos programas como WAMP o XAMPP, sin embargo, al utilizar los instaladores de PHP este si se actualiza, por eso generalmente este error Fatal error: Call to undefined function ldap_connect() solo se da en instalaciones de Windows que han utilizado WAMP o XAMPP aún cuando hayamos activado la extensión php_ldap.dll en nuestro php.ini y no de ningún error al iniciar el servicio de apache (una de las maneras de detactar que efectivamente no esta cargada la librería es ejecutar phpinfo() y veremos que en efecto no aparece).

Comentarios