您现在的位置是:首页 > 技术教程 正文

centos 7.6 安装 openldap 2.5.17、centos 7.6安装phpLDAPadmin (apache运行phpLDAPadmin)

admin 阅读: 2024-03-15
后台-插件-广告管理-内容页头部广告(手机)

centos 7.6 安装 openldap 2.5.17、centos 7.6 安装phpLDAPadmin 1.2.6.7 [apache运行phpLDAPadmin]

  • 0、写在前面(重要必看)
  • 1、下载ldap
  • 2、安装 openldap 2.5.17
    • 2.1、官方参考文档
    • 2.2、安装前准备
      • 2.2.1、安装gcc
      • 2.2.2、安装Reentrant POSIX REGEX software
      • 2.2.3、安装Cyrus SASL 2.1.27+ (非必选项 跳过即可)
      • 2.2.4、安装OpenSSL 1.1.1+ (非必选项 跳过即可)
        • 2.2.4.1、下载openssl 3.0
        • 2.2.4.2、安装依赖包
        • 2.2.4.3、编译安装openssl 3.0
      • 2.2.5、安装libevent 2.1.8+ (非必选项 跳过即可)
      • 2.2.6、安装libargon2 or libsodium (非必选项 跳过即可)
    • 2.3、安装 openldap 2.5.17
    • 2.4、配置 启动 openldap 2.5.17
      • 2.4.1、创建配置文件目录
      • 2.4.2、导入openldap配置
      • 2.4.3、后台启动openldap
      • 2.4.4、终止openldap 即终止slapd进程
      • 2.4.5、前台启动openldap
  • 3、安装ldap管理工具 phpLDAPadmin
    • 3.1、安装phpLDAPadmin 的先决条件
      • 3.1.1、安装一个web服务器(phpLDAPadmin官方安装手册推荐使用 apache http server)
      • 3.1.2、安装PHP 7.0或以上版本(含有ldap支持、含有apache http server支持)
      • 3.1.3、配置httpd 支持解析php网页文件
    • 3.2、安装phpLDAPadmin
    • 3.3、使用phpLDAPadmin

0、写在前面(重要必看)

本文所用组件版本说明,下载链接在文中对应章节
想要快速上手openldap,一定要按照这个版本组合就可成功安装phpLDAPadmin,因为不同的phpLDAPadmin版本对于php的版本要求是不同的。
服务器:centos 7.6
apache http server:2.4.58
openldap:2.5.17
php:8.0.0
phpLDAPadmin:1.2.6.7

其他版本有兴趣的话请自行测试。

1、下载ldap

官网下载地址 链接: https://openldap.org/software/download/

选择LTSR版本 OpenLDAP-2.5.17

在这里插入图片描述

选择HK站点

在这里插入图片描述

2、安装 openldap 2.5.17

2.1、官方参考文档

官方参考文档 https://www.openldap.org/doc/

官方安装文档 链接: https://www.openldap.org/doc/admin25/quickstart.html

2.2、安装前准备

安装openldap前 需要安装的依赖包
在解压后的目录中 查看README文件
在这里插入图片描述

以下是需要预先安装的软件

  • Standard C compiler (required) 比如GCC
  • Cyrus SASL 2.1.27+ (recommended)
  • OpenSSL 1.1.1+ (recommended)
  • libevent 2.1.8+ (recommended)
  • libargon2 or libsodium (recommended)
  • Reentrant POSIX REGEX software (required)

需要安装的是 GCC 和 Reentrant POSIX REGEX software

2.2.1、安装gcc

centos 7.6默认的gcc 版本是 4.8.5
在这里插入图片描述

如没有 gcc
使用如下命令安装

yum install gcc
  • 1

2.2.2、安装Reentrant POSIX REGEX software

参考链接: https://www.openldap.org/faq/data/cache/152.html

在这里插入图片描述

centos 7 默认有这个软件 直接跳过即可

2.2.3、安装Cyrus SASL 2.1.27+ (非必选项 跳过即可)

官方参考文档 https://www.cyrusimap.org/sasl/

官方安装文档 https://www.cyrusimap.org/sasl/sasl/installation.html#

下载链接 https://github.com/cyrusimap/cyrus-sasl/releases

在这里插入图片描述

tar -xzvf cyrus-sasl-2.1.28.tar.gz cd /path/to/cyrus-sasl-2.1.28 ./configure make make install ln -s /usr/local/lib/sasl2 /usr/lib/sasl2
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

至此安装 Cyrus SASL 2.1.28 完成

configure截图

在这里插入图片描述

make截图

在这里插入图片描述

make install 截图

在这里插入图片描述

形成了以下目录

在这里插入图片描述

2.2.4、安装OpenSSL 1.1.1+ (非必选项 跳过即可)

2.2.4.1、下载openssl 3.0

centos 7.6默认的openssl 版本是

openssl version
  • 1

在这里插入图片描述

需要编译安装openssl 3.0

访问 https://www.openssl.org/source/ 下载openssl 3.0

在这里插入图片描述

openssl安装手册 在解压包后目录下的Install.md

在这里插入图片描述

2.2.4.2、安装依赖包

安装openssl 3.0的前提 需要安装以下依赖包

在这里插入图片描述

安装perl 5

yum install perl
  • 1

在这里插入图片描述

yum install perl-IPC-Cmd
  • 1
2.2.4.3、编译安装openssl 3.0
tar -xzvf openssl-3.0.13.tar.gz cd /path/to/openssl-3.0.13 ./Configure make make test make install
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

Configure截图

在这里插入图片描述

make截图

在这里插入图片描述

make test截图

在这里插入图片描述

make install 截图

在这里插入图片描述

安装openssl 3.0后
默认的目录如下

在这里插入图片描述

查看openssl version 仍然是旧版本的openssl 1.0

这是因为没有吧openssl命令链接到新安装的openssl程序

mv /usr/bin/openssl /usr/bin/openssl.1.0 ln -s /usr/local/bin/openssl /usr/bin/openssl mv /usr/lib64/openssl/ /usr/lib64/openssl.1.0 ln -s /usr/local/include/openssl/ /usr/include/openssl ln -s /usr/local/lib64/libssl.so.3 /usr/lib64/libssl.so.3 ln -s /usr/local/lib64/libcrypto.so.3 /usr/lib64/libcrypto.so.3
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

其中为什么要做软链接 /usr/lib64/libssl.so.3 和 /usr/lib64/libcrypto.so.3 呢?是因为不这样做就会报错
在这里插入图片描述

在这里插入图片描述
结合报错信息说明 centos系统查找库文件 是从/usr/lib64/ 目录下找的,因此要在/usr/lib64/ 目录下建立 libssl.so.3 和 libcrypto.so.3 的软链接。

查看openssl 版本

openssl version
  • 1

在这里插入图片描述
至此在centos 7.6上安装openssl 3.0 完成

2.2.5、安装libevent 2.1.8+ (非必选项 跳过即可)

centos 7.6 默认的 libevent版本是 2.0.21

在这里插入图片描述

需要编译安装libevent 2.1.12

官方安装参考文档 https://github.com/libevent/libevent

2.2.6、安装libargon2 or libsodium (非必选项 跳过即可)

2.3、安装 openldap 2.5.17

tar -xzvf openldap-2.5.17.tgz cd /path/to/openldap-2.5.17/ ./configure --prefix=/usr/local/openldap-2.5.17 make depend make make test make install
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

configure截图

configure用了–prefix选项的好处方便是卸载软件或移植软件。当某个安装的软件不再需要时,只须简单的删除该安装目录,就可以把软件卸载得干干净净;移植软件只需拷贝整个目录到另外一个机器即可(相同的操作系统)

在这里插入图片描述

make depend 截图

在这里插入图片描述

make 截图

在这里插入图片描述

make test 截图
出现这个错误 不知道为啥 先跳过

在这里插入图片描述

make install 截图

在这里插入图片描述

在这里插入图片描述

支持安装完成 openldap 2.5.17

2.4、配置 启动 openldap 2.5.17

参考链接: https://www.openldap.org/doc/admin26/quickstart.html

2.4.1、创建配置文件目录

mkdir -p /usr/local/openldap-2.5.17/etc/slapd.d mkdir -p /usr/local/openldap-2.5.17/var/openldap-data chmod 700 /usr/local/openldap-2.5.17/var/openldap-data
  • 1
  • 2
  • 3

2.4.2、导入openldap配置

cd /usr/local/openldap-2.5.17/libexec/
  • 1

执行导入配置命令前 配置文件夹 /usr/local/openldap-2.5.17/etc/slapd.d 是空的

在这里插入图片描述

导入openldap配置

/usr/local/openldap-2.5.17/sbin/slapadd -n 0 -F /usr/local/openldap-2.5.17/etc/slapd.d -l /usr/local/openldap-2.5.17/etc/openldap/slapd.ldif
  • 1

在这里插入图片描述

在这里插入图片描述

执行导入配置命令后 配置文件夹 /usr/local/openldap-2.5.17/etc/slapd.d 形成了如下文件

在这里插入图片描述

命令参数含义:

在这里插入图片描述

2.4.3、后台启动openldap

启动openldap前 389端口没有被占用

netstat -antlp|grep 389
  • 1

在这里插入图片描述

后台启动slapd进程

/usr/local/openldap-2.5.17/libexec/slapd -F /usr/local/openldap-2.5.17/etc/slapd.d
  • 1

在这里插入图片描述

命令参数含义:

在这里插入图片描述

确认是否启动成功
启动openldap后 389端口被占用了 进程是slapd

在这里插入图片描述

/usr/local/openldap-2.5.17/bin/ldapsearch -x -b '' -s base '(objectclass=*)' namingContexts
  • 1

在这里插入图片描述

在这里插入图片描述

设置openldap开机自启动
编辑 /etc/rc.local 文件

vi /etc/rc.local
  • 1

在最后加入一行内容如下

nohup /usr/local/openldap-2.5.17/libexec/slapd -F /usr/local/openldap-2.5.17/etc/slapd.d & >> /root/logs/openldapAutoStart.log 2>&1
  • 1

在这里插入图片描述

2.4.4、终止openldap 即终止slapd进程

kill -INT $(cat /usr/local/openldap-2.5.17/var/run/slapd.pid)
  • 1

在这里插入图片描述

2.4.5、前台启动openldap

启动openldap前 389端口没有被占用

netstat -antlp|grep 389
  • 1

执行下列命令 是前台启动slapd进程的意思

/usr/local/openldap-2.5.17/libexec/slapd -F /usr/local/openldap-2.5.17/etc/slapd.d -d stats
  • 1

在这里插入图片描述

在这里插入图片描述

启动后一直占用终端屏幕 这就是前台启动

启动openldap后 389端口被占用 进程是slapd

netstat -antlp|grep 389
  • 1

在这里插入图片描述

ctrl+c 中止终端后 slapd进程也被终止了

在这里插入图片描述

3、安装ldap管理工具 phpLDAPadmin

下载链接: https://github.com/leenooks/phpLDAPadmin/tags

在这里插入图片描述

解压后查看INSTALL.md

在这里插入图片描述

在这里插入图片描述

3.1、安装phpLDAPadmin 的先决条件

在这里插入图片描述

安装phpLDAPadmin 的先决条件是

3.1.1、安装一个web服务器(phpLDAPadmin官方安装手册推荐使用 apache http server)

参考链接: centos 7.6安装 Apache HTTP Server 2.4.58

3.1.2、安装PHP 7.0或以上版本(含有ldap支持、含有apache http server支持)

下载链接: https://www.php.net/downloads.php
安装文档: https://www.php.net/manual/en/install.unix.apache2.php
解压压缩包

cd /path/to/php-8.3.3.tar.gz
  • 1
tar -xzvf php-8.3.3.tar.gz cd php-8.3.3/ ./configure --with-ldap --prefix=/usr/local/php-8.3.3 --with-apxs2=/usr/local/apache2/bin/apxs
  • 1
  • 2
  • 3

–with-apxs2 作用是支持apache可以解析php网页
在这里插入图片描述

我们要知道–with-apxs2=/usr/local/apache2/bin/apxs 有什么影响,就是说我们要知道自己在做什么
这个选项会在apache的安装目录下生成libphp.so文件供apache调用,libphp.so提供给了apache解析php网页的能力。

在这里插入图片描述

那么apache是怎么调用libphp.so呢?
通过在apache的配置文件中配置要加载的模块 使得apache在启动时加载libphp.so。
查看apache配置文件httpd.conf

我们注意到在apache配置文件httpd.conf中 有两行关于加载libphp.so的配置

LoadModule php_module modules/libphp.so #LoadModule php7_module modules/libphp7.so
  • 1
  • 2

libphp.so 指的是php 8.0版本的库文件
libphp7.so 指的是php 7.0版本的库文件
就是说通过安装不同版本的php 通过–with-apxs2=/usr/local/apache2/bin/apxs 选项可以为apache生成不同php版本的库文件 供apache启动时选择加载哪一种版本php库文件,很智能, apache不想加载的东西 在apache配置文件httpd.conf中注释掉即可 然后重启apache生效。

在这里插入图片描述

configure报错 缺少libxml-2.0 >= 2.9.0

在这里插入图片描述

安装libxml2

yum install libxml2 libxml2-devel
  • 1

再次configure

./configure --with-ldap --prefix=/usr/local/php-8.3.3 --with-apxs2=/usr/local/apache2/bin/apxs
  • 1

在这里插入图片描述

报错缺少 ldap.h configure: error: Cannot find ldap.h

改变configure命令为如下

./configure --with-ldap=/usr/local/openldap-2.5.17/ --prefix=/usr/local/php-8.3.3 --with-apxs2=/usr/local/apache2/bin/apxs
  • 1

/usr/local/openldap-2.5.17/ 是openldap的安装目录 这个目录下含有 ldap.h文件 一般来说 头文件在include目录下

在这里插入图片描述

报错 No package ‘sqlite3’ found

在这里插入图片描述

安装sqlite3

yum install sqlite sqlite-devel
  • 1

再次configure

./configure --with-ldap=/usr/local/openldap-2.5.17/ --prefix=/usr/local/php-8.3.3 --with-apxs2=/usr/local/apache2/bin/apxs
  • 1

最终configure成功

在这里插入图片描述

然后顺序执行以下2条命令安装php

make make install
  • 1
  • 2

make完成

在这里插入图片描述

make install 完成

在这里插入图片描述

查看php版本

在这里插入图片描述

把php加入到PATH环境变量中
编辑 /etc/profile 在最后面加入两行

PHP_HOME=/usr/local/php-8.3.3/ PATH=$PHP_HOME/bin:$PATH
  • 1
  • 2
vi /etc/profile
  • 1

在这里插入图片描述

使得PHP环境变量生效

source /etc/profile
  • 1

验证已经生效

在这里插入图片描述

3.1.3、配置httpd 支持解析php网页文件

编辑httpd的配置文件

vi /usr/local/apache2/conf/httpd.conf
  • 1

修改httpd.conf在文件中添加一行内容:AddType application/x-httpd-php .php
修改前

在这里插入图片描述

修改后

在这里插入图片描述

加上针对php的索引,如果没有该索引的支持,则无法解析用php编写的网页,在配置文件中添加对应索引
编辑httpd的配置文件

vi /usr/local/apache2/conf/httpd.conf
  • 1

找到DirectoryIndex

修改前
在这里插入图片描述

修改后

在这里插入图片描述
修改完成httpd.conf后 重启httpd

/usr/local/apache2/bin/apachectl -k restart
  • 1

测试验证 httpd 能否解析php网页文件
在httpd的web主目录下新建1个php文件 内容如下

cd /usr/local/apache2/htdocs vi test.php
  • 1
  • 2

test.php内容如下

<?php phpinfo(); ?>
  • 1
  • 2
  • 3

在这里插入图片描述

访问 http://httpd-server-ip:80/test.php
显示如下页面 就表示httpd 可以成功解析php网页文件

在这里插入图片描述

3.2、安装phpLDAPadmin

下载链接: https://github.com/leenooks/phpLDAPadmin/tags

在这里插入图片描述

解压后查看INSTALL.md

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

上传phpLDAPadmin-1.2.6.7.tar.gz 到服务器上

cd /path/to/phpLDAPadmin-1.2.6.7.tar.gz
  • 1
tar -xzvf phpLDAPadmin-1.2.6.7.tar.gz -C /usr/local/apache2/htdocs/
  • 1
cd /usr/local/apache2/htdocs mv phpLDAPadmin-1.2.6.7/ phpLDAPadmin cp phpLDAPadmin/config/config.php.example phpLDAPadmin/config/config.php
  • 1
  • 2
  • 3

访问phpldapadmin页面 http://httpd-server-ip/phpLDAPadmin
出现如下页面 报错 Your install of PHP appears to be missing GETTEXT support. 意思是说安装php时没有打开GETTEXT支持。

在这里插入图片描述

因此需要安装gettext 然后重新编译安装php(加上对gettext的支持)

gettext官网页面: https://www.gnu.org/software/gettext/

gettext下载链接 https://ftp.gnu.org/pub/gnu/gettext/gettext-0.22.5.tar.gz

在这里插入图片描述

解压gettext安装包 查看解压目录下的INSTALL文件 这是安装手册

在这里插入图片描述

在这里插入图片描述

cd /path/to/gettext-0.22.5.tar.gz tar -xzvf gettext-0.22.5.tar.gz cd gettext-0.22.5/ ./configure --prefix=/usr/local/gettext make make install
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

configure 截图

在这里插入图片描述

make 截图

在这里插入图片描述

make install 截图

在这里插入图片描述

重新编译安装php
先执行 make clean

cd /root/package/php/php-8.3.3 make clean
  • 1
  • 2

在这里插入图片描述

然后删除php的安装目录

rm -rf /usr/local/php-8.3.3/
  • 1

然后编译安装PHP 注意这次php configure 命令需要加上 --with-gettext=/usr/local/gettext

再次configure

./configure --with-ldap=/usr/local/openldap-2.5.17/ --prefix=/usr/local/php-8.3.3 --with-apxs2=/usr/local/apache2/bin/apxs --with-gettext=/usr/local/gettext make make install
  • 1
  • 2
  • 3

configure 截图

在这里插入图片描述

make 截图

在这里插入图片描述

make install 截图

在这里插入图片描述

访问phpldapadmin页面 http://httpd-server-ip/phpLDAPadmin
出现如下页面 报错 Unrecognized error number: 8192: Creation of dynamic property page::$index is deprecated

在这里插入图片描述

这个是因为 在php 8.2 及之后版本 setting a value to an undeclared class property is deprecated 而本文使用的php是8.3版本,踩坑了。

在这里插入图片描述

解决方法就是 重新安装php 7.0.0版本
https://www.php.net/releases/

在这里插入图片描述

下载链接 https://www.php.net/distributions/php-7.0.0.tar.gz

重新编译安装php
先对老版本8.3.3 php执行 make clean

cd /root/package/php/php-8.3.3 make clean
  • 1
  • 2

在这里插入图片描述

然后删除php的安装目录

rm -rf /usr/local/php-8.3.3/
  • 1

再次configure

cd /path/to/php-7.0.0.tar.gz tar -xzvf php-7.0.0.tar.gz cd php-7.0.0/ ./configure --with-ldap=/usr/local/openldap-2.5.17/ --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-gettext=/usr/local/gettext make make install
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

configure 截图

在这里插入图片描述

make 截图

在这里插入图片描述

make install 截图

在这里插入图片描述

访问phpldapadmin页面 http://httpd-server-ip/phpLDAPadmin
出现如下页面 报错

在这里插入图片描述

搜索这个报错
参考链接 : https://blog.csdn.net/hj960511/article/details/104560870
问题原因是php 低于7.1版本

在这里插入图片描述

解决方法就是 重新安装php 8.0.0版本
https://www.php.net/releases/

在这里插入图片描述

下载链接 https://www.php.net/distributions/php-8.0.0.tar.gz

重新编译安装php
先对老版本7.0.0 php 执行 make clean

cd /root/package/php/php-7.0.0 make clean
  • 1
  • 2

在这里插入图片描述

然后删除php 7.0.0的安装目录

rm -rf /usr/local/php
  • 1

再次configure

cd /path/to/php-8.0.0.tar.gz tar -xzvf php-8.0.0.tar.gz cd php-8.0.0/ ./configure --with-ldap=/usr/local/openldap-2.5.17/ --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-gettext=/usr/local/gettext make make install
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

configure 截图

在这里插入图片描述

make 截图

在这里插入图片描述

make install 截图

在这里插入图片描述

访问phpldapadmin页面 http://httpd-server-ip/phpLDAPadmin
出现如下页面表示成功安装。 至此安装phpLDAPadmin 1.2.6.7 成功

在这里插入图片描述

3.3、使用phpLDAPadmin

访问phpldapadmin页面 http://httpd-server-ip/phpLDAPadmin
点击登录

在这里插入图片描述

出现登录界面

输入登录DN 和密码

在这里插入图片描述

登录DN 和密码在 openldap的配置文件中 /usr/local/openldap-2.5.17/etc/openldap/slapd.ldif
登录DN:cn=Manager,dc=localhost,dc=localdomain
登录密码:secret

在这里插入图片描述

输入登录DN和密码后 点击认证按钮

在这里插入图片描述

页面出现 Successfully logged into server. 表示登录openldap成功

在这里插入图片描述

但是界面上显示 This base cannot be created with PLA 不能添加ldap条目
解决方法参考链接: phpldapadmin This base cannot be created with PLA

然后再次访问phpldapadmin页面 点击下图按钮

在这里插入图片描述

点击 创建一个子条目

在这里插入图片描述

创建基础域 点击 Generic: Organisational Unit

在这里插入图片描述

输入基础域名称 account 点击创建对象

在这里插入图片描述

点击提交

在这里插入图片描述

查看phpldapadmin 页面已经多了一个基础域 account

在这里插入图片描述

然后在account下创建1个组,组名为:user

先点击 ou=account 然后点击创建一个子条目

在这里插入图片描述

发现组模版不能点击 有个红色x号

在这里插入图片描述

推测应该是没有打开这个组模版

联想到在进入phpldapadmin首页时的这些错误提示 确定是openldap配置问题 在配置中没有打开这些模版

在这里插入图片描述

解决方法:
链接: https://unix.stackexchange.com/questions/353350/centos-7-ldap-add-insufficient-access-50

参考链接: https://serverfault.com/questions/774101/error-automatically-removed-objectclass-from-template-as-it-is-not-defined-in-t

在这里插入图片描述

在这里插入图片描述

需要在openldap中添加上这些配置文件

/usr/local/openldap-2.5.17/bin/ldapadd -f /usr/local/openldap-2.5.17/etc/openldap/schema/core.ldif -x -D cn=Manager,dc=localhost,dc=localdomain -W /usr/local/openldap-2.5.17/bin/ldapadd -f /usr/local/openldap-2.5.17/etc/openldap/schema/cosine.ldif -x -D cn=Manager,dc=localhost,dc=localdomain -W /usr/local/openldap-2.5.17/bin/ldapadd -f /usr/local/openldap-2.5.17/etc/openldap/schema/inetorgperson.ldif -x -D cn=Manager,dc=localhost,dc=localdomain -W
  • 1
  • 2
  • 3

添加core.ldif时 报错如下 说明使用的DN:-D cn=Manager,dc=localhost,dc=localdomain 没有权限添加这个core.ldif文件
在这里插入图片描述

需要编辑这个文件 添加DN:-D cn=Manager,dc=localhost,dc=localdomain 的权限让其能添加这个core.ldif文件

vi /usr/local/openldap-2.5.17/etc/slapd.d/cn\=config/olcDatabase\=\{0\}config.ldif
  • 1

更改olcAccess这一行

更改前
olcAccess: {0}to * by * none

在这里插入图片描述

更改后
olcAccess: {0}to * by manage by dn.base=“cn=Manager,dc=localhost,dc=localdomain” manage by * none

在这里插入图片描述

然后重启openldap

kill -INT $(cat /usr/local/openldap-2.5.17/var/run/slapd.pid) /usr/local/openldap-2.5.17/libexec/slapd -F /usr/local/openldap-2.5.17/etc/slapd.d
  • 1
  • 2

再次添加core.ldif文件

/usr/local/openldap-2.5.17/bin/ldapadd -f /usr/local/openldap-2.5.17/etc/openldap/schema/core.ldif -x -D cn=Manager,dc=localhost,dc=localdomain -W
  • 1

报错如下 无需理会这个错误

在这里插入图片描述

继续添加cosine.ldif

/usr/local/openldap-2.5.17/bin/ldapadd -f /usr/local/openldap-2.5.17/etc/openldap/schema/cosine.ldif -x -D cn=Manager,dc=localhost,dc=localdomain -W
  • 1

添加cosine.ldif成功

在这里插入图片描述

继续添加inetorgperson.ldif

/usr/local/openldap-2.5.17/bin/ldapadd -f /usr/local/openldap-2.5.17/etc/openldap/schema/inetorgperson.ldif -x -D cn=Manager,dc=localhost,dc=localdomain -W
  • 1

添加inetorgperson.ldif成功

在这里插入图片描述

书归正传 继续添加组
在account下创建1个组,组名为:user

先点击 ou=account 然后点击创建一个子条目

在这里插入图片描述

发现组模版不能点击 有个红色x号
但是相比于没添加core.ldif、cosine.ldif、inetorgperson.ldif 前 已经可以添加很多其他模版了 比如Generic: User Account 这个就是人员 其实至此已经可以在ou=ou=account 下添加人员了

在这里插入图片描述

本着解决问题的精神 继续前进 推测应该还是openldap中没有打开组模版
那么组模版在哪里呢?

查看openldap内置的所有模版文件

ls -l /usr/local/openldap-2.5.17/etc/openldap/schema/
  • 1

可以看到 模版目录schema下 除了刚才添加的 core.ldif、cosine.ldif、inetorgperson.ldif 还有许多其他的.ldif文件

在这里插入图片描述

直接把其他所有模版 .ldif文件全部添加一下

刚才已经执行了添加模版这些命令

/usr/local/openldap-2.5.17/bin/ldapadd -f /usr/local/openldap-2.5.17/etc/openldap/schema/core.ldif -x -D cn=Manager,dc=localhost,dc=localdomain -W /usr/local/openldap-2.5.17/bin/ldapadd -f /usr/local/openldap-2.5.17/etc/openldap/schema/cosine.ldif -x -D cn=Manager,dc=localhost,dc=localdomain -W /usr/local/openldap-2.5.17/bin/ldapadd -f /usr/local/openldap-2.5.17/etc/openldap/schema/inetorgperson.ldif -x -D cn=Manager,dc=localhost,dc=localdomain -W
  • 1
  • 2
  • 3

继续添加其他模版文件
注意一下命令需要单挑执行 因为每条都需要在屏幕上输入密码 密码在openldap的配置文件中查看 默认是secret 查看密码

vi /usr/local/openldap-2.5.17/etc/openldap/slapd.ldif
  • 1

在这里插入图片描述

/usr/local/openldap-2.5.17/bin/ldapadd -f /usr/local/openldap-2.5.17/etc/openldap/schema/collective.ldif -x -D cn=Manager,dc=localhost,dc=localdomain -W /usr/local/openldap-2.5.17/bin/ldapadd -f /usr/local/openldap-2.5.17/etc/openldap/schema/corba.ldif -x -D cn=Manager,dc=localhost,dc=localdomain -W /usr/local/openldap-2.5.17/bin/ldapadd -f /usr/local/openldap-2.5.17/etc/openldap/schema/dsee.ldif -x -D cn=Manager,dc=localhost,dc=localdomain -W /usr/local/openldap-2.5.17/bin/ldapadd -f /usr/local/openldap-2.5.17/etc/openldap/schema/duaconf.ldif -x -D cn=Manager,dc=localhost,dc=localdomain -W /usr/local/openldap-2.5.17/bin/ldapadd -f /usr/local/openldap-2.5.17/etc/openldap/schema/dyngroup.ldif -x -D cn=Manager,dc=localhost,dc=localdomain -W /usr/local/openldap-2.5.17/bin/ldapadd -f /usr/local/openldap-2.5.17/etc/openldap/schema/java.ldif -x -D cn=Manager,dc=localhost,dc=localdomain -W /usr/local/openldap-2.5.17/bin/ldapadd -f /usr/local/openldap-2.5.17/etc/openldap/schema/misc.ldif -x -D cn=Manager,dc=localhost,dc=localdomain -W /usr/local/openldap-2.5.17/bin/ldapadd -f /usr/local/openldap-2.5.17/etc/openldap/schema/msuser.ldif -x -D cn=Manager,dc=localhost,dc=localdomain -W /usr/local/openldap-2.5.17/bin/ldapadd -f /usr/local/openldap-2.5.17/etc/openldap/schema/namedobject.ldif -x -D cn=Manager,dc=localhost,dc=localdomain -W /usr/local/openldap-2.5.17/bin/ldapadd -f /usr/local/openldap-2.5.17/etc/openldap/schema/nis.ldif -x -D cn=Manager,dc=localhost,dc=localdomain -W /usr/local/openldap-2.5.17/bin/ldapadd -f /usr/local/openldap-2.5.17/etc/openldap/schema/openldap.ldif -x -D cn=Manager,dc=localhost,dc=localdomain -W /usr/local/openldap-2.5.17/bin/ldapadd -f /usr/local/openldap-2.5.17/etc/openldap/schema/pmi.ldif -x -D cn=Manager,dc=localhost,dc=localdomain -W
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

然后再次重启openldap

kill -INT $(cat /usr/local/openldap-2.5.17/var/run/slapd.pid) /usr/local/openldap-2.5.17/libexec/slapd -F /usr/local/openldap-2.5.17/etc/slapd.d
  • 1
  • 2

然后刷新phpldapadmin页面

继续添加组
在account下创建1个组,组名为:user

先点击 ou=account 然后点击创建一个子条目

在这里插入图片描述

点击 Generic: Posix Group

在这里插入图片描述

输入组名 users 点击创建对象

在这里插入图片描述

点击提交

在这里插入图片描述

然后在users组下 创建用户ein 先点cn=users 再点创建一个子条目

在这里插入图片描述

在这里插入图片描述

然后点击 Generic: User Account

在这里插入图片描述

输入用户信息 用户名密码等 其中GID号 选择users组

在这里插入图片描述

点击提交

在这里插入图片描述

查看ein账号

在这里插入图片描述

和建立ein账号 同样的方法 在users组下面 建立zwei账号

查看ein 和 zwei

在这里插入图片描述

至此成功使用phpldapadmin 操作openldap 创建账户成功

现在有了openldap服务器 并且创建了账户 下面就可以使用各种服务来对接openldap实现用户认证了

比如使用cas对接openldap 实现sso单点登录 centos 7.6 安装cas 对接openldap sso单点登录实战

比如使用openvpn对接openldap实现账户认证 等等…

标签:
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

在线投稿:投稿 站长QQ:1888636

后台-插件-广告管理-内容页尾部广告(手机)
关注我们

扫一扫关注我们,了解最新精彩内容

搜索
排行榜