Zend framework 使用INI配置而不是PHP数组时,LDAP连接器停止工作
我有这个功能:Zend framework 使用INI配置而不是PHP数组时,LDAP连接器停止工作,zend-framework,ldap,ini,Zend Framework,Ldap,Ini,我有这个功能: <?php private function spawnAdapter($credentials) { //$ldapConfig = array("server1" => array( // "host" => "172.16.100.32", // "useStartTls" => 1, // "accountDomainName" => "schoolxp", // "accountDomain
<?php
private function spawnAdapter($credentials) {
//$ldapConfig = array("server1" => array(
// "host" => "172.16.100.32",
// "useStartTls" => 1,
// "accountDomainName" => "schoolxp",
// "accountDomainNameShort" => "schoolxp",
// "accountCanonicalForm" => 3,
// "baseDn" => "DC=schoolxp",
//));
// We must retrieve the LDAP servers from the conf
$ldapConfig = $this->_config->ldap->toArray();
// Remove the log path, otherwise the adapter will think this is
// one of our servers and fail.
unset($ldapConfig['log']);
$adapter = new Zend_Auth_Adapter_Ldap(
$ldapConfig,
$credentials['username'],
$credentials['password']
);
return $adapter;
}
?>
当PHP数组用于Auth_适配器时,代码运行良好,但是如果我切换到使用INI配置,它将失败并出现未知错误
我已经在INI文件数组和PHP数组上运行了print_f,它们是相同的,但是LDAP适配器仍然在日志文件中抛出异常
有趣的是,日志中的连接字符串对于INI文件和数组都是相同的。。对于感兴趣的人,以下是日志文件:
如果您能了解情况,我们将不胜感激在我看来,LDAP适配器试图连接到错误的端口0。 请尝试使用以下命令指定它:
ldap.server1.port = 389
或您正在使用的任何端口。尝试通过SSL/TLS添加389和636 LDAP,但仍然无法正常工作-尝试连接时仍会出现未知错误代码错误。您是否拥有有效的证书自签名证书在AD服务器上无法正常工作?如果没有,您可能想先尝试在没有TLS的情况下连接。这就成功了!但是,它没有解释为什么在ini文件中设置它不起作用,因为本质上LDAP适配器接收完全相同的数组,或者我认为无论使用哪种配置,它都是如此,并且当本机PHP数组使用完全相同的配置时,它会起作用settings@BradMorris那么你不介意接受我的回答吗虽然这解决了这个问题,但它并没有真正回答我的问题——为什么会发生这种情况?两个数组本质上是相同的,那么为什么一个可以工作而另一个不能呢?
ldap.server1.port = 389