4

我安装了 64 位 Windows 平台和 Postgresql 8.4(作为 Apache,EnterpriseDB-ApachePHP 安装在 Pstgres 上)。我需要使用 Active Directory(或 LDAP?)凭据对系统进行身份验证,但即使我启用了 LDAP 并重新启动 Apache错误日志我看到 PHP 致命错误:调用path/to/my/phpfile中未定义的函数 ldap_connect() .. 我使用的 PHP 脚本如下,

<?php

$user = $_POST["myUserName@mydomain.com"];
$pass = $_POST["muPassword"];
//in our system, we already use this account for LDAP authentication on the server above
$ldap_serv = 'ldap://192.168.69.10';
$ldap_port = '389';
$lc = ldap_connect($ldap_serv, $ldap_port);
ldap_set_option($lc, LDAP_OPT_REFERRALS, 0);
ldap_set_option($lc, LDAP_OPT_PROTOCOL_VERSION, 3);
$ldapbind = ldap_bind($lc,$user,$pass);
if ($ldapbind == false) {
  echo 'username or password is wrong';
}
else
{
echo "You Logged in";
echo "<br><br><br>Wellcome<br><br><br>";
}
?>
4

2 回答 2

6

使用 LDAP 函数需要 PHP LDAP 扩展。只需检查它在您的 php.ini ( extension=php_ldap.dll)中是否未注释

于 2012-11-15T09:58:07.720 回答
1

PHP 扩展显然没有加载。有几件事可以尝试:

  • 从命令行运行“php -m”并确保 ldap 在模块列表中,并且没有与 ldap 相关的错误。
  • 确保 apache php 模块正在使用您修改的 php.ini(并在页面上查找 php.ini)
于 2012-11-15T15:19:58.560 回答