ID: 45886 User updated by: rocko823 at gmail dot com Reported By: rocko823 at gmail dot com -Status: Feedback +Status: Open Bug Type: LDAP related Operating System: Solaris 10 SPARC PHP Version: 5.2.6 New Comment:
I found the problem. This apparently occurs when the Apache LDAP modules (mod_authnz_ldap, and mod_ldap) are not loaded. I added these to my LoadModule section in httpd.conf and now ldap_connect and ldap_bind work perfectly. I'm not really sure why this would be as I've had previous set ups and not used the Apache LDAP module. Previous Comments: ------------------------------------------------------------------------ [2008-08-22 17:05:53] [EMAIL PROTECTED] Because some oracle libs contain their own implementation of ldap functions and conflict with openldap ones. And IIRC, Solaris also has it's own ldap stuff (sometimes) so in worst case you have 3 different set of libs around and the mess is ready. You could try compiling PHP ldap using the oracle libs: --with-ldap=/local/instantclient_10_2/ I'm not sure if this instantclient thing has the ldap stuff, but I guess it's worth trying.. ------------------------------------------------------------------------ [2008-08-22 16:23:42] rocko823 at gmail dot com Both apache and PHP are linked against a compiled version of openssl 0.9.8h Unfortunately I cannot disable OCI8 as the projects on this server require Oracle database access. I have attempted to recreate this problem on a test Intel machine running Solaris 10 but the problem does not occur. If I can get my hands on a test Sparc Solaris 10 Box I can try disabling OCI8 to see if that has any effect. However I really need both modules running. Why would OCI8 have any effect on the LDAP module? ------------------------------------------------------------------------ [2008-08-21 20:53:54] [EMAIL PROTECTED] Try disabling oci8. And check also that Apache is linked with same Openssl libs as you're linking PHP with. ------------------------------------------------------------------------ [2008-08-21 20:14:11] rocko823 at gmail dot com Description: ------------ PHP 5.2.6 with Apache 2.2.9 with this configure: './configure' '--with-apxs2=/web/apache/bin/apxs' '--with-mysql=/local/mysql32' '--with-gd' '--with-jpeg-dir=/usr/local/' '--with-zlib' '--with-oci8=instantclient,/local/instantclient_10_2' '--with-mcrypt' '--with-ldap' '--with-ldap-sasl' '--with-openssl=/usr/local/ssl' with openldap 2.3.39 When ldap_connect then ldap_bind is run it fails with ldap error "Out of memory" only when run under Apache 2 module, with the command line client it runs correctly. Reproduce code: --------------- ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7); $ds=ldap_connect("ldap://server"); if ($ds) { [EMAIL PROTECTED]($ds, "user", "password"); if ($r) { echo "success"; } else { echo "fail:" . ldap_error($ds); } } Expected result: ---------------- PHP connects and binds to the LDAP server and returns success Actual result: -------------- PHP returns ldap error "Out of memory". PHP doesn't even try to connect to the LDAP server. In the apache error logs I see these ldap debugging messages: ldap_create ldap_url_parse_ext(ldap://server) ldap_bind_s ldap_simple_bind_s ldap_sasl_bind_s ldap_sasl_bind and it stops there where when run with the command line and a success there are many more lines ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=45886&edit=1