LDAP管理工具:phpLDAPadmin 的安装配置

LDAP管理工具有很多,这里推荐的一款基于网页ldap管理工具phpLDAPadmin,可以在线添加ldap相关ou和其他对象。
1. phpLDAPadmin,目前版本是 1.1.0.5,不过本文仍使用 1.1.0 版本,因为 1.1.0.5 我使用中有些问题,可从 [url]http://nchc.dl.sourceforge.net/sourceforge/phpldapadmin/phpldapadmin-1.1.0.zip[/url] 下载。
4, phpLDAPadmin 的安装配置
1) 把下载的 phpLDAPadmin 解压到 Apache 的站点主目录中,目录命名为 phpldapadmin,如 %APACHE_HOME%/htdocs/phpldapadmin,用 %PHP_LDAP_ADMIN_HOME% 来表示这个目录。
2) 把 %PHP_LDAP_ADMIN_HOME% /config/config.php.example 更名为 config.php,这个文件中对于各项的配置有很详细的说明。
3) 修改以上的 config.php 文件
注意,如果是连接用来连接到本机的 389 端口上的 LDAP 服务,不用修改此文件都行,到时在界面上直接输入登录用户的 DN 和密码即可。
在该文件中找到行
$ldapservers->SetValue($i,’server’,’name’,’My LDAP Server’);
并把这一行随后的
// $ldapservers->SetValue($i,’server’,’host’,’127.0.0.1′);
// $ldapservers->SetValue($i,’server’,’port’,’389′);
// $ldapservers->SetValue($i,’server’,’base’,array(”));
// $ldapservers->SetValue($i,’server’,’auth_type’,’cookie’);
# $ldapservers->SetValue($i,’login’,’dn’,’cn=Manager,dc=example,dc=com’);
# $ldapservers->SetValue($i,’login’,’pass’,’secret’);
去掉注释符(// 或 #),再依据前面的 OpenLDAP 配置依次改为
$ldapservers->SetValue($i,’server’,’host’,’localhost’);
$ldapservers->SetValue($i,’server’,’port’,’389′);
$ldapservers->SetValue($i,’server’,’base’,array(‘dc=example,dc=com’));
$ldapservers->SetValue($i,’server’,’auth_type’,’cookie’);
$ldapservers->SetValue($i,’login’,’dn’,’cn=jimbob,dc=example,dc=com’);
$ldapservers->SetValue($i,’login’,’pass’,’dirtysceret’);
以上那个属性不设置,则取默认值,如默认 host 为 localhost,port 为 389,base 为空则自动检测,auth_type 为 cookie,dn 和 pass 不设值则要求界面输入。
3) 如果要同时管多个 LDAP 服务器,则可在这个 config.php 文件中参照 $i++; 所在的注释块配置其他的 LDAP 服务器参数,配置了多个可以在 WEB 界面上通过下拉选择当前的的 LDAP 服务器。
在浏览器上访问 [url]http://localhost/phpldapadmin/index.php[/url], 点击左侧 My LDAP Server 下的 Login …,输入 登录 DN 为 cn=jimbob,dc=example,dc=com 和密码为:dirtysecret,点击认证按钮就能连接上 LDAP 服务器进行管理了。这里挂上一个搜索的界面。

四. 一些问题
1. 为什么用 phpLDAPadmin 1.1.0,而不用目前最新版 1.1.0.5,因为 1.1.0.5 主要有两个问题:
1) 经常页面出现乱码,每次需手工选择网页编码为 UTF-8,1.1.0 下正常。
2) 即使在 config.php 中提供了登录 DN 和 密码,auth-type 是 cookie,也是不能自己登录的,一定要输入密码手工点一点认证按钮,1.1.0 下正常
2. 注意 PHP 的版本,以及是否开启了 LDAP 和 GETTEXT 支持。我首先拿到的 phpLDAPadmin 版本是 1.1.0-alpha3,看其中的 INSTALL 文件里写着的是:
PHP 4.1.0 or newer (with LDAP support)
其实我还是比较大方的,直接用了 PHP 4.4.9 来伺候它,LDAP 也开了,结果它不领情。出现了这样的错误:
php unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or ‘}’
定位在 PHP 类的变量声明上,如 public、private 和 clone 操作上,原因是 PHP 4 不支持这个,只能用 var,所以要换 PHP 5 才行。
还有 phpLDAPadmin 绝口未提要 GETTEXT 来支持它的国际化,害我从源代码中才翻出这一底细,即使是后续版本也对此默声不语。况且 PHP 4 本身就没有内置对 GETTEXT 的支持,尝试着安装 gettext for Win32 也不奏效,那就顺手移到 PHP5 上吧,在 php.ini 中把 GETTEXT 也打开,一切解决。
在 phpldapadmin/htdocs/index.php 中有这么一段代码:
# Make sure this PHP install has gettext, we use it for language translation
if (! extension_loaded(‘gettext’))
pla_error(‘
Your install of PHP appears to be missing GETTEXT support.
GETTEXT is used for language translation.
Please install GETTEXT support before using phpLDAPadmin.
(Dont forget to restart your web server afterwards)
‘);
3. 有关 php.ini 和 config.php 的详细配置见这两文件本身吧,它们是自文档的,例如可以适当的裁剪一些 PHP 的功能。以及 PHP 和 Apache 的搭配也应见 PHP 的 install.txt。最后为方便访问,在 Apache 的 httpd.conf 中为
DirectoryIndex index.html index.php
把 index.php 也加上,如上形式。
本篇只关注如何配置 phpLDAPadmin 使用,碰到问题实际解决而已。旨在为我们开发中使用 LDAP 提供一个便利的工具而已,或有些用处。不用在 PHP 上纠缠,毕竟 PHP 太久没用过了,也不清楚现在演化成什么样子了。
4. 另外,若是你的 phpLDAPadmin 页面要加载的数据信息过于庞大时,建议用 FireFox,因为 FireFox 与 IE 的机制不一样,FireFox 首先会申请一大块内存,所以显示大量数据信息的页面时不会像 IE 那样拖不动。用 FireFox 和 IE 分别试着访问一下 Blogjava 首页面的,更多博客连接 [url]http://www.blogjava.net/AllBloggers.aspx[/url] 就知道了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注