4

64ビットのWindowsプラットフォームとPostgresql8.4がインストールされています(Apache、EnterpriseDB-ApachePHPがPstgresにインストールされているため)。ActiveDirectory(または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機能を使用するには、PHPLDAP拡張機能が必要です。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 に答える