What are the best practices for setting up and configuring LDAP in PHP for managing user accounts?

Setting up and configuring LDAP in PHP for managing user accounts involves connecting to an LDAP server, binding with appropriate credentials, searching for users, and performing various operations like authentication, adding, updating, or deleting user accounts.

// Connect to LDAP server
$ldapServer = 'ldap://ldap.example.com';
$ldapPort = 389;
$ldapConn = ldap_connect($ldapServer, $ldapPort);

// Bind with credentials
$ldapBindUser = 'cn=admin,dc=example,dc=com';
$ldapBindPass = 'password';
ldap_bind($ldapConn, $ldapBindUser, $ldapBindPass);

// Search for users
$ldapSearchBase = 'ou=users,dc=example,dc=com';
$ldapFilter = '(objectClass=inetOrgPerson)';
$ldapSearch = ldap_search($ldapConn, $ldapSearchBase, $ldapFilter);
$ldapEntries = ldap_get_entries($ldapConn, $ldapSearch);

// Perform operations like authentication, adding, updating, or deleting user accounts
// Example: Authenticate user
$ldapUser = 'uid=user1,ou=users,dc=example,dc=com';
$ldapPassword = 'password';
if (ldap_bind($ldapConn, $ldapUser, $ldapPassword)) {
    echo 'Authentication successful';
} else {
    echo 'Authentication failed';
}

// Close LDAP connection
ldap_close($ldapConn);