我试图做一个简单的ldap绑定,由于某种原因,它可以在MAMP堆栈上工作,但当我将代码复制到CentOS7时就不行了。我为php安装了LDAP模块。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
if(extension_loaded('ldap')){
print "LDAP Module enabled<br>";
}
$ldaphost = "ldap://ldap.myschool.edu";
$ldapconn = ldap_connect($ldaphost)
or die("Could not connect to {$ldaphost}");
if($ldapconn){
echo "LDAP Connections Success...<br>";
}
$ldaprdn = 'johnSmith@myschool.edu';
$ldappass = 'password';
if($ldapconn){
$ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);
var_dump($ldapbind);
if ($ldapbind) {
echo "LDAP bind successful...<br>";
} else {
echo "LDAP bind failed...<br>";
}
}
?>我不知道为什么它在MAMP而不是CentOS7上工作。我试图禁用防火墙,并让apache完全读、写、执行,但情况似乎并非如此。我还需要安装另一个软件包吗?LDAP服务器与运行此脚本的服务器不同,如果这有帮助的话。
发布于 2017-08-24 02:35:33
登录到服务器(正在执行代码的服务器)并运行以下命令:
getsebool -a| grep http grep ldap
它应该返回这样的东西:
httpd_can_connect_ldap --> on如果它返回,而不是关闭,那么运行如下:
-P httpd_can_connect_ldap on
这将允许服务器通过http连接到ldap。
https://stackoverflow.com/questions/45848982
复制相似问题