云计算-OpenStack+LDAP集成-第四节-安装OpenLDAP网页管理端
上一节我们用命令行建好了目录树骨架。但日常管理(加学生、改密码、建组)总不能每次都手写 LDIF。这一节装 phpLDAPadmin——一个跑在 Apache 上的网页管理端,让你像用 phpMyAdmin 管数据库一样管 LDAP。

一、原理:一条四段式的访问链路
phpLDAPadmin 不是一个独立服务,它只是 Apache 里的一段 PHP 程序。记住这条链路,出问题时就知道去查哪一段:
- 浏览器 发出 http 请求;
- Apache httpd(80 端口) 接收并执行 PHP;
- phpLDAPadmin 按 config.php 里的设置去连 LDAP;
- slapd(389 端口) 真正处理查询和认证。
二、操作步骤
第 1 步:装 EPEL 源和组件。phpLDAPadmin 在 EPEL 仓库里,这一步不能省。
yum install -y epel-release yum install -y phpldapadmin httpd php
第 2 步:配置 Apache 访问权限。默认只允许本机访问,局域网里打开会 403。
vi /etc/httpd/conf.d/phpldapadmin.conf # Apache 2.4 写法: # Require local ← 注释掉这行 Require all granted # 或者只放行实训网段(更安全): # Require ip 192.168.100.0/24 # 注意:如果配置文件里已有 Alias /ldapadmin /usr/share/phpldapadmin/htdocs # 这一行,说明路径已配好,只需处理权限部分
第 3 步:配置 phpLDAPadmin 连接参数。四个关键点,行号仅供参考、以实际文件为准。
vi /etc/phpldapadmin/config.php
$servers->setValue('server','name','Local LDAP Server'); // 约 291 行
$servers->setValue('server','host','127.0.0.1'); // 约 298 行,本机就写 127.0.0.1
$servers->setValue('server','base',array('dc=example,dc=com')); // 约 305 行
$servers->setValue('login','attr','dn'); // 约 397 行,必须启用
// $servers->setValue('login','attr','uid'); // 约 398 行,必须注释
第 4 步:启动 Apache 并访问。
systemctl start httpd systemctl enable httpd # 浏览器打开(IP 换成你自己的): # http://192.168.100.10/phpldapadmin
登录时填的是完整 DN:cn=admin,dc=example,dc=com,密码是第三节的明文密码。登录成功后能看到 dc=example,dc=com 这棵树,以及 ou=People、ou=Group 两个组织单元。
三、config.php 关键项对照
| 配置项“, ”作用“, ”典型取值 | ||
|---|---|---|
| server’,’name | 左侧树显示的名字 | Local LDAP Server |
| server’,’host | LDAP 服务器地址“, ”同机 127.0.0.1;分机写对方 IP | |
| server’,’base | 登录后默认展开的根 | dc=example,dc=com |
| login’,’attr | 登录框按什么匹配“, ”必须 dn,不能用 uid |
四、常见问题与排错
| 现象“, ”原因“, ”解决办法 | ||
|---|---|---|
| 页面 403 | httpd 未放行你的网段“, ”改 phpldapadmin.conf 的 Require 部分 | |
| 能打开但登录失败 | login attr 还是 uid | 启用 dn、注释 uid(第 3 步最后两行) |
| 左侧树是空的 | server base 写错“, ”核对 dc=example,dc=com 拼写 | |
| 整页 PHP 报错 | php 未装或版本过低“, ”确认 yum install 里带了 php |
五、本节小结
一句话记住:EPEL → phpldapadmin+httpd+php → 放行 Require → config.php 四项 → 登录用完整 DN。下一节是整套方案的灵魂:让 OpenStack 的 Keystone 也来这棵树里认人。

