Openldap2.5.13编译安装

本篇文章没有很全面,采用的是编译安装,yum安装参考我的另外一篇文章

一、准备

  1. openssl-1.1.1.tar.gz 下载地址:https://ftp.openssl.org/source/old/1.1.1/openssl-1.1.1.tar.gz

  2. openldap-2.5.13.tgz 下载地址:https://www.openldap.org/software/download/OpenLDAP/openldap-release/openldap-2.5.13.tgz

  3. 更换yum源

    # "备份原来的源"
    mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup# "下载、替换为阿里云源配置"
    wget /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo# "更新yum缓存"
    yum clean all
    yum makecache
    
  4. 创建要放置安装的文件夹(这里根据实际情况定义)

    mkdir /oakxian             #项目的总安装路径
    mkdir /oakxian/soft              #安装包所在位置
    mkdir /oakxian/server      #项目软件安装位置
    mkdir /oakxian/log         #项目日志位置
    
  5. 关闭防火墙和selinux

    [root@localhost ~]# systemctl stop firewalld
    [root@localhost ~]# systemctl disable firewalld         [root@localhost ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
    [root@localhost ~]# setenforce 0
    

二、编译并配置openssl-1.1.1

1、openldap需要用到openssl 1.1.1或以上版本,但是centos7截止到2021年07月14日官方yum源中没有并没有openssl 1.1.1以上的版本。所以使用源码进行编译

2、查看当前环境openssl版本,不满足条件,则先进行openssl-1.1.1安装

[root@localhost ~]# openssl version
OpenSSL 1.0.2k-fips  26 Jan 2017

3、编译oepnssl需要用到gcc,使用yum安装gcc

yum install gcc

4、检查服务器是否安装zlib

whereis zlib

​ 如果服务器已经安装则会输出路径 ,没有安装的需要执行下载安装命令

yum install zlib-devel

​ 再次检查服务器中zlib,显示已经存在

[root@localhost ~]# whereis zlib
zlib: /usr/include/zlib.h /usr/share/man/man3/zlib.3.gz

5、将下载的openssl安装包放置/oakxian/soft目录下并解压

openssl-1.1.1.tar.gz 下载地址:https://ftp.openssl.org/source/old/1.1.1/openssl-1.1.1.tar.gz

tar -zxf openssl-1.1.1.tar.gz

6、编译openssl-1.1.1并将其安装到/oakxian/server/openssl目录下

cd /oakxian/soft/openssl-1.1.1             #进入解压后的目录下#执行配置文件,并设置安装位置为/oakxian/server/openssl
./config shared zlib --prefix=/oakxian/server/openssl make && make install                       #编译安装

--prefix是指定安装目录的,shared zlib库是在安装时寻找zlib库依赖的

7、安装完成后构建依赖

cd /oakxian/soft/openssl-1.1.1
./config -tmake depend

8、在编译时使用的动态链接库文件中,加入openssl路径

vim /etc/ld.so.conf文件,在文件末尾加上 /oakxian/server/openssl/lib (填写实际位置)

执行配置生效命令

ldconfig

9、添加openssl到环境变量

vim /etc/profile 文件 ,添加如下内容到末尾

export OPENSSL=/oakxian/server/openssl/bin
export PATH=$OPENSSL:$PATH:$HOME/bin

执行:

source /etc/profile

10、正常安装完成后,查看openssl版本

[root@localhost server]# openssl version
OpenSSL 1.1.1  11 Sep 2018

注:执行openssl version可能会报如下错误

/usr/local/openssl/bin/openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory

解决办法:

#位置根据实际情况填写,默认位置为:/usr/local/openssl/lib/libssl.so.1.1
sudo ln -s /oakxian/server/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
sudo ln -s /oakxian/server/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1

三、Cyrus SASL安装

这个是编译安装必须要的依赖包,如果选择yum源安装,则不需要(yum安装自带了)

#安装SASL机制依赖包
yum -y install cyrus-sasl-*

四、编译安装openldap-2.5.13

1、下载所需依赖

yum -y install unixODBC-devel.x86_64
yum install -y libtool-ltdl libtool-ltdl-devel tcp_wrappers tcp_wrappers-devel
yum -y install gcc      #gcc也需要,上面已安装过

2、下载openldap包到/oakxian/soft目录下,并编译安装到/oakxian/server/openldap目录下

cd /oakxian/soft                     #到压缩包所在位置
tar -zxf openldap-2.5.13.tgz    #解压
cd /oakxian/soft/openldap-2.5.13  #进入解压后目录

执行configure配置:

注意,编译时需要用到上文中已经编译好的openssl相关头文件以及库

./configure CPPFLAGS="-I/usr/local/include  -I/oakxian/server/openssl/include" \LDFLAGS="-L/usr/local/lib  -L/oakxian/server/openssl/lib"  \--datadir=/oakxian/server/openldap/data \--enable-ldap  --enable-cleartext --enable-sql --enable-spasswd \--enable-dynamic --enable-syslog --with-cyrus-sasl --enable-ppolicy \--enable-crypt --enable-modules --enable-wrappers  \--enable-overlays --enable-accesslog --enable-debug  \--prefix=/oakxian/server/openldap/ --with-tls=openssl

说明:–enable-overlays会安装所有模块到slapd中,会带有memberof属性,不需要单独添加memberof模块,需要配置文件中添加:overlay memberof,来开启

注意,需要configure都校验通过后再进行编译安装,即上述操作没有报错,提示如下图:

执行:

make depend

make前需要修改一下编译模式 #解决"for.c:3:2: 附注:使用 -std=c99 或 -std=gnu99 来编译您的代码"报错

cd /oakxian/soft/openldap-2.5.13
vim   servers/slapd/back-sql/add.c

修改如下图所示,将i变量提出到for循环外

执行:

make
make test  #时间较久
make install

编译好后openldap就安装到了指定目录/oakxian/server/openldap目录下

3、配置环境变量

vim /etc/profile,添加如下内容

LDAP_HOME=/oakxian/server/openldap
PATH=$PATH:$LDAP_HOME/bin:$LDAP_HOME/sbin:$LDAP_HOME/libexec
export PATH

source /etc/profile

五、配置openldap

1、设置超级密码rootpw

[root@localhost ~]# slappasswd -s 123456
{SSHA}3hz85TJMt4n8QOdEDXI7MbfEcCbS9UJM
#创建directory目录,需要根据slapd.conf文件中directory的值创建
mkdir /oakxian/server/openldap/var/openldap-data#先启动slapd
[root@localhost openldap]# slapd -d 256 -h "ldap:/// ldapi:///"#重启一个shell页面,执行以下命令:
#创建slapd.d目录
mkdir /oakxian/server/openldap/etc/openldap/slapd.d
#生成对应slapd.d下相关配置文件
slaptest -f /oakxian/server/openldap/etc/openldap/slapd.conf -F /oakxian/server/openldap/etc/openldap/slapd.d#修改权限
vim /oakxian/server/openldap/etc/openldap/slapd.d/cn\=config/olcDatabase\=\{0\}config.ldif#----将默认olcAccess: {0}to * by * none修改为如下内容:
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage by * none#重启slapd,在第一个启动的等待命令界面,ctrl+c停止slapd,再执行启动命令
[root@localhost openldap]# slapd -d 256 -h "ldap:/// ldapi:///"/这一步也不执行
ldapadd -Y EXTERNAL -H ldapi:/// -f chrootpw.ldif

2、导入schema

文件都在/oakxian/server/openldap/etc/openldap/schema目录下

ldapadd -Y EXTERNAL -H ldapi:/// -f /oakxian/server/openldap/etc/openldap/schema/collective.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /oakxian/server/openldap/etc/openldap/schema/corba.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /oakxian/server/openldap/etc/openldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /oakxian/server/openldap/etc/openldap/schema/dsee.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /oakxian/server/openldap/etc/openldap/schema/duaconf.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /oakxian/server/openldap/etc/openldap/schema/inetorgperson.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /oakxian/server/openldap/etc/openldap/schema/dyngroup.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /oakxian/server/openldap/etc/openldap/schema/java.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /oakxian/server/openldap/etc/openldap/schema/misc.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /oakxian/server/openldap/etc/openldap/schema/namedobject.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /oakxian/server/openldap/etc/openldap/schema/nis.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /oakxian/server/openldap/etc/openldap/schema/openldap.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /oakxian/server/openldap/etc/openldap/schema/pmi.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /oakxian/server/openldap/etc/openldap/schema/msuser.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /oakxian/server/openldap/etc/openldap/schema/dyngroup.ldif

注意:如果报错:additional info: olcAttributeTypes: Duplicate attributeType

则证明已经包含对应的schema,上述schema,后两个msuser和dyngroup我在导入时显示重复

3、创建根域,与超级管理员

[root@localhost ~]# slappasswd -s 123456
{SSHA}l+9FKL3GIYmQH1QMwVHm5ytWaxu3wIhZ

vim domain-dbadmin.ldif

dn: olcDatabase={0}config,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to *by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manageby dn.base="cn=directory manager,dc=cbpm,dc=com" readby * nonedn: olcDatabase={1}mdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=cbpm,dc=comdn: olcDatabase={1}mdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=directory manager,dc=cbpm,dc=comdn: olcDatabase={1}mdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}l+9FKL3GIYmQH1QMwVHm5ytWaxu3wIhZdn: olcDatabase={1}mdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChangeby dn="cn=directory manager,dc=cbpm,dc=com" writeby anonymous authby self writeby * none
olcAccess: {1}to dn.base=""by * read
olcAccess: {2}to *by dn="cn=directory manager,dc=cbpm,dc=com" writeby * read

ldapmodify -Y EXTERNAL -H ldapi:/// -f domain-dbadmin.ldif

Openldap2.5.13编译安装相关推荐

  1. mysql 5.5.48源码安装_centos5.5+apache2.2.15+mysql5.1.48+php5.2.13 编译安装 --by 画符抓鬼撰聊斋.doc...

    centos5.5+apache2.2.15+mysql5.1.48+php5.2.13 编译安装 --by 画符抓鬼撰聊斋.doc 还剩 5页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲 ...

  2. 转-httpd 2.4.4 + mysql-5.5.28 + php-5.4.13编译安装过程

    一.编译安装apache 1.解决依赖关系 httpd-2.4.4需要较新版本的apr和apr-util,因此需要事先对其进行升级.升级方式有两种,一种是通过源代码编译安装,一种是直接升级rpm包.这 ...

  3. centos 6 mysql 5.7.13 编译安装_Centos 6.5 下面 源码编译 安装 Mysql 5.7.13

    安装软件依赖包 yum -y install gcc gcc-c++ ncurses ncurses-devel cmake 下载软件包 cd  /usr/local/src wget https:/ ...

  4. centos 6 mysql 5.7.13 编译安装_Centos 6.5系统下编译安装PHP 7.0.13的方法

    PHP7.0正式版也出来了,今天编译安装了一下,写下安装步骤,我是在centos6.6 环境中编译的,下面是详细的安装步骤 环境依赖 yum install gcc gcc-c++ libxml2 l ...

  5. mysql5.7.13编译安装_MySQL 5.7.13 源码编译安装配置方法图文教程

    安装环境:centos7 64位 mini版 官网源码编译安装文档: 一.系统安装条件 官方文档说明: 1> cmake mysql使用cmake跨平台工具预编译源码,用于设置mysql的编译参 ...

  6. Qt最新版5.13在Windows环境静态编译安装和部署的完整过程(VS 2017/VS 2019)

    文章目录 为什么要静态编译 1.源码下载 2. 编译工具下载 ActivePerl Python Ruby 编译环境选择 3.编译 1.修改源码里的qtbase\mkspecs\common\msvc ...

  7. mysql5.1编译安装centos7_CentOS7下 Nginx1.13.5 + PHP7.1.10 + MySQL5.7.19 源码编译安装

    在CentOS7下 Nginx1.13.5 + PHP7.1.10 + MySQL5.7.19 源码编译安装过程记录. 一.安装Nginx 1.安装依赖扩展 # yum -y install wget ...

  8. centos 6.2 编译安装mysql_CentOS 6.2编译安装Nginx1.2.0+MySQL5.5.25+PHP5.3.13

    CentOS 6.2编译安装Nginx1.2.0+MySQL5.5.25+PHP5.3.13 2013-10-24 15:31:12 标签:服务器 防火墙 file 配置文件 written 一.配置 ...

  9. ubuntu16.04 在cuda9.0环境下编译安装opencv2.4.13.7

    ubuntu16.04 在cuda9.0环境下编译安装opencv2.4.13.7 安装步骤: 1.安装cuda9.0:https://blog.csdn.net/zhuangwu116/articl ...

最新文章

  1. 这款工具,1分钟定位性能瓶颈,我老板都说好!
  2. 【c语言】求最大公约数
  3. docker tag 删除images_深入浅出 Docker (二) —— Docker的基本概念和架构原理
  4. vhdl变量赋初值_1.6 C++变量
  5. 副本的leader选举
  6. leetcode860. 柠檬水找零
  7. mysql以user1登录_在mysql中创建用户后不能本地登录的解决方法
  8. easy bootstrap模板
  9. asp.net网上零食销售商城系统
  10. 华为交换机将端口由trunk更改为access报错解决方法
  11. 记一次idea 打包时出现的错误 Discovered module-info.class. Shading will break its strong encapsulation.
  12. 安卓手机如何打开.crx文件_安卓手机打开.crx文件的方法
  13. android 微信图片动画,一款仿微信图片加载,微博图片加载,视频加载时的进度view...
  14. cocos2d-x教程和项目实例集合
  15. 创新驱动看广东,上云本领看云宏!全国30多家网媒齐聚云宏参访!
  16. 2014最佳开源教程
  17. mindspore.ops.Pad如何像torch.nn.functional.pad一样可以填充负维度
  18. 合并两个数值按升序的
  19. 1286.字母组合迭代器
  20. Qt 项目:windows计算器

热门文章

  1. bits不能在本地计算机启动,Win10 BITS服务无法启动的解决方法
  2. 转发携带原始的Host
  3. 那些因素会影响微型真空泵间接抽水的效果?
  4. 游戏原创声音该如何鉴定呢?
  5. HelloWorld程序编写(用Java)
  6. 构造函数和析构函数的作用是什么?什么时候需要自己定义构造函数和析构函数?
  7. 什么是构造函数?构造函数有什么用?
  8. 为什么你参加了那么多培训,却依然表现平平?
  9. (精华)2020年8月7日 微信小程序 实时音视频通话
  10. 数字前端是什么?就业如何?学习路径怎么安排?一文搞定所有疑问!