Temos um aplicativo PHP implementado em uma máquina RHEL6 que depende de algumas chamadas do ldap para a função. Em particular, ldap_connect e ldap_bind são usados para verificar usuários e também para procurar seus detalhes.
Esse mecanismo funciona bem no nosso servidor de desenvolvimento, que é executado no servidor Ubuntu. Na nossa máquina de produção, que é executada no RHEL6, o processo falha. Em ambos os casos, nos conectamos ao mesmo servidor LDAP usando as mesmas credenciais, então, claramente, algo está errado no servidor RHEL6. Estamos usando o LDAP básico, sem material SSL.
Posso confirmar que não há problema de firewall ou rede no novo servidor. Ping para o servidor LDAP funciona muito bem. Além disso, uma chamada ldap_connect também é bem-sucedida.
Para isolar o problema do nosso aplicativo, usei o script de teste PHP abaixo:
<?php
// Set the ldap server
$ldapurl = "[snipped]";
$ldapuser = "[snipped]";
$ldappass = "[snipped]";
// Set the debug flag
$debug = true;
// Set debugging
if ($debug) {
ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7);
}
// connect to ldap server
echo "Trying to connect<br/>";
echo "1: " . date('l jS \of F Y h:i:s A') . "<br/>";
$ldapconn = ldap_connect($ldapurl) or die ("Couldn't connect");
echo "2: " . date('l jS \of F Y h:i:s A') . "<br/>";
// binding to ldap server
echo "Trying to bind with $ldapuser - $ldappass<br/>";
echo "3: " . date('l jS \of F Y h:i:s A') . "<br/>";
$ldapbind = @ldap_bind($ldapconn, $ldapuser, $ldappass);
echo "4: " . date('l jS \of F Y h:i:s A') . "<br/>";
if (!$ldapbind) {
echo "Unable to bind to server $ldapurl\n";
echo "OpenLdap error message: " . ldap_error($ldapconn) . "\n";
exit;
}
// Rest of code goes here
?>
Estou executando o script acima nos dois servidores. No nosso servidor de desenvolvimento, tudo está bem. No nosso servidor RHEL6, a conexão funciona, mas a ligação falha após um atraso de mais de um minuto:
Mensagem de erro do OpenLdap: não é possível entrar em contato com o servidor LDAP
Eu não sou um administrador de sistema, portanto, a maioria das discussões encontradas a respeito desse erro on-line não entendi completamente. Espero que alguém aqui possa me ajudar com isso. Muito obrigado antecipadamente.