インストール条件&環境

Suse10 SP2
OpenLdap2.4.11
Berkeley DB 4.6.21
環境準備
OpenLDAP 2.4では、configure実行時に、バックエンドデータベースとして利用する「Berkeley DB」のバージョンチェックに失敗します。
OpenLDAP 2.4がサポートするBerkeley DBのバージョンは、ソースコードに付属するREADMEファイルの案内を参考にしてください。

BerkeleyDBのインストール

$ tar xvf db-4.6.21.tar.gz
$ cd db-4.6.21/build_unix/
$ ../dist/configure
$ make
$ su root -c 'make install'

環境変数設定

Berkeley DBは/usr/local/BerkeleyDB.4.6/libにインストールされています。
exportコマンドを利用して環境変数LD_LIBRARY_PATHに設定
$ export LD_LIBRARY_PATH=/usr/local/BerkeleyDB.4.6/lib
$ echo $LD_LIBRARY_PATH
/usr/local/BerkeleyDB.4.6/lib ./configure --prefix=/usr/local/openldap-2.4.11

OpenLdapのコンパイルとインストール

$ tar zxvf openldap-2.4.11.tgz
$ cd openldap-2.4.11
$ CPPFLAGS=-I/usr/local/BerkeleyDB.4.6/include LDFLAGS=-L/usr/local/BerkeleyDB.4.6/lib \
> ./configure --prefix=/usr/local/openldap-2.4.11
$ make depend
$ make
$ make test
$ su root -c 'make install'

Berkeley DBを利用する構成になっていることを確認

$ ldd /usr/local/openldap-2.4.11/libexec/slapd | grep Berkeley
        libdb-4.6.so => /usr/local/BerkeleyDB.4.6/lib/libdb-4.6.so (0x00276000)

ldapユーザの登録

# groupadd ldap
# useradd -g ldap -s /bin/false ldap

権限の変更

インストールディレクトリへ移動する
管理の便宜上lnkファイルを作成
# ln -s /usr/local/openldap-2.4.11 /usr/local/openldap
# cd /usr/local/openldap
# chown root.ldap etc/openldap/slapd.conf
# chmod g+r etc/openldap/slapd.conf
# chown ldap.ldap -R var

DB_CONFIGの作成

# cp -p var/openldap-data/DB_CONFIG.example var/openldap-data/DB_CONFIG
# ./sbin/slaptest -u
config file testing succeeded

ldap起動

# ./libexec/slapd -u ldap 

起動確認

# ldapsearch -x -h localhost -b dc=my-domain,dc=com -LLL

ldap停止

# kill -INT `cat var/run/slapd.pid`

起動スクリプト(Suse)

#! /bin/bash
# Copyright (c) 1996-2002 SuSE Linux AG, Nuernberg, Germany.
# All rights reserved.
#
# Author: Florian La Roche, 1996
#      Werner Fink <werner@suse.de>, 1996
#      Burchard Steinbild, 1996
#
# Please send feedback to http://www.suse.de/feedback
#
# /etc/init.d/ldap
#
### BEGIN INIT INFO
# Provides:       ldap
# Required-Start:
# Required-Stop:
# Default-Start:  3 5
# Default-Stop:
# Description:    OpenLdap service server
### END INIT INFO
export LD_LIBRARY_PATH=/usr/local/BerkeleyDB.4.6/lib
PROGNAME=slapd
SLAPD=/usr/local/openldap/libexec/slapd
PIDFILE=/usr/local/openldap/var/run/slapd.pid
SLAPD_ARGS=
RETVAL=0
case "$1" in
       start)
               echo -n "Starting $PROGNAME:    "
               $SLAPD $SLAPD_ARGS

               RETVAL=$?
               if [ $RETVAL -eq 0 ]
               then
                       echo "OK"
               else
                       echo "NG"
               fi
               ;;
       stop)
               echo -n "Stopping $PROGNAME:    "
               if [ -r $PIDFILE ]
               then
                       kill -TERM `cat $PIDFILE`
                       RETVAL=$?
                       if [ $RETVAL -eq 0 ]
                       then
                               echo "OK"
                       else
                               echo "NG"
                       fi
               else
                       RETVAL=1
                       echo "NG"
               fi
               ;;
       restart)
               $0 stop
               $0 start
               ;;
       status)
               if [ -r $PIDFILE ]
               then
                       ps -p `$PIDFILE` > /dev/null 2>&1
                       RETVAL=$?

                       if [ $RETVAL=eq 0 ]
                       then
                               echo "$PROGNAME is running"
                       else
                               echo "$PROGNAME is stopped"
                       fi
               else
                       echo "$PROGNAME is stopped"
               fi
               ;;
       *)
               echo "Usage: $0 [start|stop|restart|status]"
               RETVAL=1
esac

exit $RETVAL
最終更新:2009年03月11日 17:28