Разверните php с помощью ldap.conf
Я использую php 7 для подключения к активной директории, используя LDAP. Мне нужно вручную создать файл в: C:\openLDAP\sysconf\ldap.conf и установить TLS_REQCERT никогда. Если я не создаю этот файл, ldap не может подключиться.
Как я могу развернуть это, например, на машине Azure, которая не содержит диск C:
Знаете ли вы лучший подход, чтобы решить эту ошибку?
Я попытался это: Нужна помощь в игнорировании сертификата сервера при привязке к серверу LDAP с помощью PHP
putenv('LDAPTLS_REQCERT=never');
Но это не работает.
1 ответ
Я знаю его годы, но у меня была такая же проблема, и я так и поступил, как сказал @ChadSikorra.
поместите сценарий.php в корень сайта (я сделал test/ldap.php), который имеет ваши подключения к ldap, добавьте код ниже перед
php ldap_connect()
ini_set('display_errors', 1); error_reporting(E_ALL); ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7);
используя Kudu CMD из корня сайта, тест cd, php ldap.php
это были результаты
Обратите внимание на 5-ю красную строку, перейдите к D:/ и создайте
.ldaprc
файлотредактируйте файл и вставьте
TLS_REQCERT never
, сохранить, повторить шаг 2.Если ваше приложение запущено, перейдите в консоль приложения и перезапустите сервер.
Выполнено!
заполните файл ldap.php ниже
$username = "USERNAME";
$password = "PASSWORD";
$adServer = "IP"; //or domain
$adPort = 389;
$ldaprdn = "DOMAIN\\$username";
ldap_set_optioNULL, LDAP_OPT_DEBUG_LEVEL, 7);
putenv('LDAPTLS_REQCERT=never');
$ldap = ldap_connect("ldaps://$adServer", $adPort);
ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ldap, LDAP_OPT_REFERRALS, 0);
$bind = ldap_bind($ldap, $ldaprdn, $password);
if ($bind) {
echo "Connection successful";
@ldap_close($ldap);
} else {
echo "Invalid email address / password";
}
Если на вашем сервере установлен OpenLDAP. Вы можете изменить конфигурацию в /usr/local/etc/openlad/ldap.conf
,
Если у вас нет OpenLDAP, вы устанавливаете его.