Nous avons une application PHP déployée sur une machine RHEL6 qui dépend de certains appels ldap pour fonctionner. En particulier, ldap_connect et ldap_bind sont utilisés pour vérifier les utilisateurs et également pour rechercher leurs détails.
Ce mécanisme fonctionne très bien sur notre serveur de développement, qui fonctionne sur Ubuntu server. Sur notre machine de production, qui fonctionne sur RHEL6, le processus échoue. Dans les deux cas, nous nous connectons au même serveur LDAP en utilisant les mêmes informations d'identification, il est donc clair que quelque chose ne va pas sur le serveur RHEL6. Nous utilisons du LDAP de base, pas de trucs SSL.
Je peux confirmer qu'il n'y a aucun problème de pare-feu ou de réseau sur le nouveau serveur. Le ping vers le serveur LDAP fonctionne très bien. De plus, un appel ldap_connect est également réussi.
Pour isoler le problème de notre application, j'ai utilisé le script PHP de test simple ci-dessous:
";
echo "1: " . date('l jS \of F Y h:i:s A') . "";
$ldapconn = ldap_connect($ldapurl) or die ("Impossible de se connecter");
echo "2: " . date('l jS \of F Y h:i:s A') . "";
// Liaison au serveur ldap
echo "Tentative de liaison avec $ldapuser - $ldappass";
echo "3: " . date('l jS \of F Y h:i:s A') . "";
$ldapbind = @ldap_bind($ldapconn, $ldapuser, $ldappass);
echo "4: " . date('l jS \of F Y h:i:s A') . "";
if (!$ldapbind) {
echo "Impossible de se lier au serveur $ldapurl\n";
echo "Message d'erreur OpenLdap: " . ldap_error($ldapconn) . "\n";
exit;
}
// Le reste du code va ici
?>
J'exécute le script ci-dessus sur les deux serveurs. Sur notre serveur de développement, tout va bien. Sur notre serveur RHEL6, la connexion fonctionne, mais la liaison échoue après un délai de plus d'une minute:
Message d'erreur OpenLdap: Impossible de contacter le serveur LDAP
Je ne suis pas du tout un sysadmin, donc la plupart des discussions trouvées en ligne concernant cette erreur je ne les comprends pas pleinement. J'espère que quelqu'un ici pourra m'aider avec ça. Merci d'avance.