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

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

本文所用组件版本说明,下载链接在文中对应章节
想要快速上手openldap,一定要按照这个版本组合就可成功安装phpLDAPadmin,因为不同的phpLDAPadmin版本对于php的版本要求是不同的。
服务器:centos 7.6
nginx:1.24.0
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

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

至此安装 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

在这里插入图片描述

需要编译安装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

在这里插入图片描述

yum install perl-IPC-Cmd
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

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

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

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

查看openssl 版本

openssl version

在这里插入图片描述
至此在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

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

2.4.2、导入openldap配置

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

执行导入配置命令前 配置文件夹 /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

在这里插入图片描述

在这里插入图片描述

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

在这里插入图片描述

命令参数含义:

在这里插入图片描述

2.4.3、后台启动openldap

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

netstat -antlp|grep 389

在这里插入图片描述

后台启动slapd进程

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

在这里插入图片描述

命令参数含义:

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

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

vi /etc/rc.local

在最后加入一行内容如下

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

在这里插入图片描述

2.4.4、终止openldap 即终止slapd进程

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

在这里插入图片描述

2.4.5、前台启动openldap

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

netstat -antlp|grep 389

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

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

在这里插入图片描述

在这里插入图片描述

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

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

netstat -antlp|grep 389

在这里插入图片描述

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

在这里插入图片描述

3、安装ldap管理工具 phpLDAPadmin

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

在这里插入图片描述

解压后查看INSTALL.md

在这里插入图片描述

在这里插入图片描述

3.1、安装phpLDAPadmin 的先决条件

在这里插入图片描述

安装phpLDAPadmin 的先决条件是

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

参考链接: centos 7.6 安装 nginx 1.24.0 介绍、安装、配置、使用

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

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

cd /path/to/php-8.3.3.tar.gz
tar -xzvf php-8.3.3.tar.gz
cd php-8.3.3/
./configure --with-ldap --prefix=/usr/local/php-8.3.3  --enable-fpm

在这里插入图片描述

–enable-fpm 作用是通过支持Nginx web服务器支持PHP作为FPM SAPI模块的方式 使得nginx支持解析php网页。

在这里插入图片描述

configure报错 缺少libxml-2.0 >= 2.9.0

在这里插入图片描述

安装libxml2

yum install libxml2 libxml2-devel

再次configure

./configure --with-ldap --prefix=/usr/local/php-8.3.3 --enable-fpm

在这里插入图片描述

报错缺少 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 --enable-fpm

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

在这里插入图片描述

报错 No package ‘sqlite3’ found

在这里插入图片描述

安装sqlite3

yum install sqlite sqlite-devel

再次configure

./configure --with-ldap=/usr/local/openldap-2.5.17/  --prefix=/usr/local/php-8.3.3 --enable-fpm

最终configure成功

在这里插入图片描述

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

make
make install

make完成

在这里插入图片描述

make install 完成

在这里插入图片描述

查看php版本

在这里插入图片描述

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

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

在这里插入图片描述

使得PHP环境变量生效

source /etc/profile

验证已经生效

在这里插入图片描述

接下来配置php
第一步
把php解压后的目录中的范例配置文件php.ini-development 拷贝到php安装目录下

cp /root/package/php/php-8.3.3/php.ini-development /usr/local/php/

第二步
把php安装目录下的www.conf.default拷贝为www.conf
把php安装目录下的php-fpm.conf.default拷贝为php-fpm.conf

cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

第三步

cp /root/package/php/php-8.3.3/sapi/fpm/php-fpm /usr/local/bin

编译安装php时 通过指定configure选项中–ebable-fpm这个选项会在编译安装php后 在php压缩包的解压目录生成php-fpm可执行文件
在这里插入图片描述
这个 php-fpm可执行文件 需要拷贝到 /usr/local/bin 下供系统使用

下一步设置
重要的是,我们防止Nginx将请求传递到PHP-FPM后端,如果文件不存在,允许我们防止任意脚本注入。

vi /usr/local/php/php.ini

查找 cgi.fix_pathinfo= 并改成下面这样:
cgi.fix_pathinfo=0
修改前

在这里插入图片描述

修改后

在这里插入图片描述

下一步配置
在启动php-fpm服务之前,必须修改/usr/local/php/etc/php-fpm.d/www.conf,指定php-fpm必须以root用户和www-root组运行,这个用户和用户组需要和nginx程序的与用户和用户组保持一致。 比如改为nginx用户 nginx用户组。
编辑/usr/local/php/etc/php-fpm.d/www.conf

vi /usr/local/php/etc/php-fpm.d/www.conf

查找并修改下面部分

修改前

在这里插入图片描述

修改后

在这里插入图片描述

最后启动php-fpm服务 默认hph-fpm服务监听9000端口

启动php-fpm服务

nohup /usr/local/bin/php-fpm -c /usr/local/php/php.ini &

查看php-fpm命令

php-fpm --help

通过-c 指定php.ini配置文件

在这里插入图片描述

在这里插入图片描述

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

编辑nginx的配置文件

vi /usr/local/nginx/nginx.conf

编辑nginx.conf 修改默认的location块,让nginx知道它必须尝试服务.php文件:
修改前

在这里插入图片描述

修改后

在这里插入图片描述

下一步是确保.php文件被传递到PHP-FPM后端。在注释的默认PHP位置块下面,输入以下内容

location ~* \.php$ {
    fastcgi_index   index.php;
    fastcgi_pass    127.0.0.1:9000;
    include         fastcgi_params;
    fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
    fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
}

修改前

在这里插入图片描述

修改后

在这里插入图片描述

修改完成nginx.conf后 重启nginx

/usr/local/nginx/nginx -s stop
/usr/local/nginx/nginx -c /usr/local/nginx/nginx.conf

在这里插入图片描述

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

cd /usr/local/nginx/html/
vi test.php

test.php内容如下

<?php
    phpinfo();
?>

在这里插入图片描述

访问 http://nginx-server-ip:8081/test.php 此处8081是因为自定的nginx端口为8081。
显示如下页面 就表示nginx 可以成功解析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
tar -xzvf phpLDAPadmin-1.2.6.7.tar.gz -C /usr/local/nginx/html/
cd /usr/local/nginx/html
mv phpLDAPadmin-1.2.6.7/ phpLDAPadmin
cp phpLDAPadmin/config/config.php.example phpLDAPadmin/config/config.php

访问phpldapadmin页面 http://nginx-server-ip/phpLDAPadmin/htdocs/index.php
出现如下页面 报错 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

configure 截图

在这里插入图片描述

make 截图

在这里插入图片描述

make install 截图

在这里插入图片描述

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

cd /root/package/php/php-8.3.3
make clean

在这里插入图片描述

然后删除php的安装目录

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

然后编译安装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 --enable-fpm --with-gettext=/usr/local/gettext
make
make install

configure 截图

在这里插入图片描述

make 截图

在这里插入图片描述

make install 截图

在这里插入图片描述

访问phpldapadmin页面 http://nginx-server-ip/phpLDAPadmin/htdocs/index.php
出现如下页面 报错 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

在这里插入图片描述

然后删除php的安装目录

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

再次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 --enable-fpm --with-gettext=/usr/local/gettext
make
make install

configure 截图

在这里插入图片描述

make 截图

在这里插入图片描述

make install 截图

在这里插入图片描述

以下是配置php
接下来配置php
第一步
把php解压后的目录中的范例配置文件php.ini-development 拷贝到php安装目录下

cp /root/package/php/php-7.0.0/php.ini-development /usr/local/php/

第二步
把php安装目录下的www.conf.default拷贝为www.conf
把php安装目录下的php-fpm.conf.default拷贝为php-fpm.conf

cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

第三步

cp /root/package/php/php-7.0.0/sapi/fpm/php-fpm /usr/local/bin

编译安装php时 通过指定configure选项中–ebable-fpm这个选项会在编译安装php后 在php压缩包的解压目录生成php-fpm可执行文件
在这里插入图片描述
这个 php-fpm可执行文件 需要拷贝到 /usr/local/bin 下供系统使用

下一步设置
重要的是,我们防止Nginx将请求传递到PHP-FPM后端,如果文件不存在,允许我们防止任意脚本注入。

vi /usr/local/php/php.ini

查找 cgi.fix_pathinfo= 并改成下面这样:
cgi.fix_pathinfo=0
修改前

在这里插入图片描述

修改后

在这里插入图片描述

下一步配置
在启动php-fpm服务之前,必须修改/usr/local/php/etc/php-fpm.d/www.conf,指定php-fpm必须以root用户和www-root组运行,这个用户和用户组需要和nginx程序的与用户和用户组保持一致。 比如改为nginx用户 nginx用户组。
编辑/usr/local/php/etc/php-fpm.d/www.conf

vi /usr/local/php/etc/php-fpm.d/www.conf

查找并修改下面部分

修改前

在这里插入图片描述

修改后

在这里插入图片描述

最后启动php-fpm服务 默认hph-fpm服务监听9000端口
启动php-fpm服务

nohup /usr/local/bin/php-fpm -c /usr/local/php/php.ini &

查看php-fpm命令

php-fpm --help

通过-c 指定php.ini配置文件

在这里插入图片描述

在这里插入图片描述

以上是配置php 7.0.0

访问phpldapadmin页面 http://nginx-server-ip/phpLDAPadmin/htdocs/index.php
出现如下页面 报错

在这里插入图片描述

搜索这个报错
参考链接 : 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

在这里插入图片描述

然后删除php 7.0.0的安装目录

rm -rf /usr/local/php

再次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 --enable-fpm --enable-fpm --with-gettext=/usr/local/gettext
make
make install

configure 截图

在这里插入图片描述

make 截图

在这里插入图片描述

make install 截图

在这里插入图片描述

以下是配置php 8.0.0
接下来配置php
第一步
把php解压后的目录中的范例配置文件php.ini-development 拷贝到php安装目录下

cp /root/package/php/php-8.0.0/php.ini-development /usr/local/php/

第二步
把php安装目录下的www.conf.default拷贝为www.conf
把php安装目录下的php-fpm.conf.default拷贝为php-fpm.conf

cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

第三步

cp /root/package/php/php-8.0.0/sapi/fpm/php-fpm /usr/local/bin

编译安装php时 通过指定configure选项中–ebable-fpm这个选项会在编译安装php后 在php压缩包的解压目录生成php-fpm可执行文件
在这里插入图片描述
这个 php-fpm可执行文件 需要拷贝到 /usr/local/bin 下供系统使用

下一步设置
重要的是,我们防止Nginx将请求传递到PHP-FPM后端,如果文件不存在,允许我们防止任意脚本注入。

vi /usr/local/php/php.ini

查找 cgi.fix_pathinfo= 并改成下面这样:
cgi.fix_pathinfo=0
修改前

在这里插入图片描述

修改后

在这里插入图片描述

下一步配置
在启动php-fpm服务之前,必须修改/usr/local/php/etc/php-fpm.d/www.conf,指定php-fpm必须以root用户和www-root组运行,这个用户和用户组需要和nginx程序的与用户和用户组保持一致。 比如改为nginx用户 nginx用户组。
编辑/usr/local/php/etc/php-fpm.d/www.conf

vi /usr/local/php/etc/php-fpm.d/www.conf

查找并修改下面部分

修改前

在这里插入图片描述

修改后

在这里插入图片描述

最后启动php-fpm服务 默认hph-fpm服务监听9000端口
启动php-fpm服务

nohup /usr/local/bin/php-fpm -c /usr/local/php/php.ini &

查看php-fpm命令

php-fpm --help

通过-c 指定php.ini配置文件

在这里插入图片描述

在这里插入图片描述

以上是配置php 8.0.0

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

在这里插入图片描述

3.3、使用phpLDAPadmin

访问phpldapadmin页面 http://nginx-server-ip/phpLDAPadmin/htdocs/index.php
点击登录

在这里插入图片描述

出现登录界面

输入登录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

添加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

更改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

再次添加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

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

在这里插入图片描述

继续添加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

添加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

添加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/

可以看到 模版目录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

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

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

在这里插入图片描述

/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

然后再次重启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

然后刷新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实现账户认证 等等…

  • 11
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值