2011-12-19 3 views
0

У меня есть скрипт PHP, работающий на Apache в Windows XP, который может успешно выполнять аутентификацию LDAP. Я скопировал этот же скрипт в Apache в Linux Red Hat и ldap_bind call nows дал мне следующую ошибку:PHP LINUX WINDOWS Успех ldap_bind на WinXP, но не Linux

Предупреждение: ldap_bind() [function.ldap-bind]: Не удается привязываться к серверу: не удается связаться с LDAP server

Я могу ping сервер LDAP как с Linux, так и с Windows.

Я сравнил PHP, Apache и версии LDAP и нашел следующее:

Linux Red Hat машины: PHP версия: 5.1.6 Apache версии: 2.2.3 LDAP: OpenLDAP, RCS Версия: $ л.д.: ldap.c, v 1.161.2.3 2006/01/01 12:50:08, API версии 3001, Vendor версия 20343

моя локальная машина для Windows: PHP версия: 5.3.8 Apache версии 2.2. 21 LDAP: OpenLDAP, RCS Версия: $ ld: ldap.c 313665 2011/07/25 11:42:53, версия API 3001, версия поставщика 20319

Есть ли какие-либо известные проблемы с ldap_bind в более ранних версиях Linux или Apache? У кого-нибудь есть идеи, почему один и тот же PHP-скрипт делает LDAP-аутентификацию успешно с компьютера Windows, но не на Linux-машине?

+0

Вот мой код PHP: $ ldaphost = "ldap: //some.server.com: 3268"; if (! ($ connect = ldap_connect ($ ldaphost))) {\t \t die («Не удалось подключиться к LDAP-серверу»); } if ($ connect) { $ result = ldap_set_option ($ connect, LDAP_OPT_PROTOCOL_VERSION, 3); } $ ldapbind = ldap_bind ($ connect, $ username, $ password); – user840930

ответ

0

Теперь он работает на машине Linux.

И Windows, и Linux-машина использовали OpenLDAP, но LDAP на компьютере Linux неправильно настроен для подключения к LDAP-серверу. Исправлено изменение файла /etc/ldap.conf. Настройки в этом файле были неправильно установлены. Пробная версия и ошибка, изменяющие настройки в этом файле в соответствии с тем, что было использовано в Windows. Параметр ключа, казалось, был портом. порт в этом файле был первоначально установлен в 389, предположительно по умолчанию. Изменено это на 3268. Перезапущен Apache и снова попробовал аутентификацию, и это сработало. Также прокомментировал параметр «base». Базы не нужны, поскольку LDAP находится в домене Windows.

Смежные вопросы