使用PHP连接active directory或LDAP
我正在尝试将Windows的active directory或LDAP与PHP中的应用程序()连接起来 连接参数: 正在连接服务器:使用PHP连接active directory或LDAP,php,windows,ldap,Php,Windows,Ldap,我正在尝试将Windows的active directory或LDAP与PHP中的应用程序()连接起来 连接参数: 正在连接服务器: $ds = ldap_connect($host, $port) // return true @ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3); @ldap_set_option($ds, LDAP_OPT_REFERRALS, 0); @ldap_set_option($ds, LDAP_OPT_DE
$ds = ldap_connect($host, $port) // return true
@ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
@ldap_set_option($ds, LDAP_OPT_REFERRALS, 0);
@ldap_set_option($ds, LDAP_OPT_DEREF, $deref_options);
将连接与服务器、用户和密码关联
ldap_bind ($ds, $ login, $ password)
返回给我:
“无法联系LDAP服务器”
我想知道这个错误消息会发生什么,因为在第一个方法中,它向我返回true,这意味着如果它连接到服务器
RootDN
这很好,拥有我正在使用的用户的所有权限
默认服务器很好,我做了ping
和telnet
注意:我已经下载了LDAPExplorer并建立了连接,没有问题。缺少的:
$ds=ldap\u connect…
是否与代码中的情况类似
应该是这样的:
$ds = ldap_connect($host, $port);
@ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
@ldap_set_option($ds, LDAP_OPT_REFERRALS, 0);
@ldap_set_option($ds, LDAP_OPT_DEREF, $deref_options);
ldap_bind ($ds, $login, $password)
缺少的:
$ds=ldap\u connect…
是否与代码中的情况类似
应该是这样的:
$ds = ldap_connect($host, $port);
@ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
@ldap_set_option($ds, LDAP_OPT_REFERRALS, 0);
@ldap_set_option($ds, LDAP_OPT_DEREF, $deref_options);
ldap_bind ($ds, $login, $password)
ldap\u connect
不连接到服务器,如中所述。它只是创建一个资源并检查给定的值是否合理。实际连接是使用第一个需要连接到服务器的命令建立的。在这种情况下,ldap\u绑定
顺便说一句,“第一个方法”不返回true
,而是返回一个资源句柄。只有当您传递绝对不可解析的内容时,它才会返回false
。但是从不正确
我建议使用LDAP-URI而不是
$host,$port
变体,因为PHP库必须在内部这样做。这是f.e.建立LDAPS连接的唯一方法。ldap\u connect
没有连接到服务器,如中所述。它只是创建一个资源并检查给定的值是否合理。实际连接是使用第一个需要连接到服务器的命令建立的。在这种情况下,ldap\u绑定
顺便说一句,“第一个方法”不返回true
,而是返回一个资源句柄。只有当您传递绝对不可解析的内容时,它才会返回false
。但是从不正确
我建议使用LDAP-URI而不是
$host,$port
变体,因为PHP库必须在内部这样做。这是f.e.建立LDAPS连接的唯一方法。好的,我的问题的解决方案是从GLPI版本9.3.0升级到9.3.3
建议:
- 对于用户来说,这可能会发生什么,请验证GLPI通知的有关挂起的安装包的消息。所以我选择了更新,连接没有问题
- 对于无法更新版本的用户,请验证apache软件包是否正在等待安装或更新,同样在安装过程中,在安装过程中,请非常小心地安装似乎处于等待状态的整个列表
chown-R apache:apacheglpi/files
chmod-R 755 glpi/文件
chown-R apache:apache配置
chmod-R 755 glpi/config
此外:
setsebool-p httpd\u can\u network\u connect\u db 1
谢谢。好的,我的问题的解决方案是从GLPI版本9.3.0升级到9.3.3 建议:
- 对于用户来说,这可能会发生什么,请验证GLPI通知的有关挂起的安装包的消息。所以我选择了更新,连接没有问题
- 对于无法更新版本的用户,请验证apache软件包是否正在等待安装或更新,同样在安装过程中,在安装过程中,请非常小心地安装似乎处于等待状态的整个列表
chown-R apache:apacheglpi/files
chmod-R 755 glpi/文件
chown-R apache:apache配置
chmod-R 755 glpi/config
此外:
setsebool-p httpd\u can\u network\u connect\u db 1
谢谢。我正在运行
echo ldap\u error($ds)代码>返回true,然后执行ldap\u绑定($ds,$login,$password)
返回false,然后ldap\u错误($ds)
返回“无法联系ldap服务器”。我还尝试将服务器的ip放入方法中,但得到了相同的结果代码>而不是第一个回显ldap_错误($ds)
查看$ds
的实际值。要获取有关错误的更多信息,您可能不需要查看描述提取上一个错误的更多信息的方法。执行var\u dump(ldap\u error($ds))
return me string(7)“Success”。执行var\u dump($ds)
return me我正在运行的类型(ldap link)的资源(65)echo ldap\u error($ds)代码>返回true,然后执行ldap\u绑定($ds,$login,$password)
返回false,然后ldap\u错误($ds)
返回“无法联系ldap服务器”。我还尝试将服务器的ip放入方法中,但得到了相同的结果代码>而不是第一个回显ldap_错误($ds)
查看$ds
的实际值。要获取有关错误的更多信息,您可能不需要查看描述提取上一个错误的更多信息的方法。执行var\u dump(ldap\u error($ds))
return me string(7)“Success”。执行var\u dump($ds)
return me resource(65)类型(ldap link)