Bitnami OpenLDAP Docker部署后PHP调用ldap_bind报无效凭据错误
问题排查与修复方案
你的问题并非镜像本身导致,全部是配置和代码的拼写错误引发,具体修复步骤如下:
1. 错误点修正
(1)PHP代码密码拼写错误
你在docker-compose中配置的管理员密码为adminpassword,但PHP代码里写的是admin-password,多了一个横杠,这是触发Invalid credentials错误的最直接原因。
修改PHP代码中的密码变量即可:
// 原错误代码 $pw = 'admin-password'; // 修正为 $pw = 'adminpassword';
(2)docker-compose.yml配置错误
有两处配置需要同步修正:
- 网络驱动拼写错误:
driver: bridges改为driver: bridge,Docker默认桥接驱动名称没有末尾的s - 环境变量多余双引号:Bitnami镜像的环境变量不需要额外加引号,引号会被识别为值的一部分,导致实际配置的密码、组织名等信息和你预期不一致,所有环境变量去掉两端的双引号即可,示例:
version: '3' networks: my-network: driver: bridge services: ldap: image: bitnami/openldap:latest restart: unless-stopped environment: - LDAP_ORGANISATION=My Company - LDAP_DOMAIN=my-company.com - LDAP_ROOT=dc=my-company,dc=com - LDAP_ADMIN_USERNAME=admin - LDAP_ADMIN_PASSWORD=adminpassword - LDAP_USERS=user01,user02 - LDAP_PASSWORDS=password1,password2 ports: - '1389:1389' - '1636:1636' networks: - my-network volumes: openldap_data: driver: local
2. 生效验证步骤
修改完配置后需要清空旧的持久化数据,否则之前错误配置生成的LDAP数据还会保留:
- 执行命令停止现有服务并删除旧卷:
docker-compose down -v - 重新启动服务:
docker-compose up -d - 等待10秒左右服务完全启动后,运行修改后的PHP代码,即可返回
LDAP bind successful...的成功提示。
内容的提问来源于stack exchange,提问作者Alex Rump
相关产品推荐
相关产品推荐

