banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành *nix Starting slapd FAILED  XML
  [Question]   Starting slapd FAILED 02/10/2010 09:14:08 (+0700) | #1 | 221966
[Avatar]
vitcon01
Member

[Minus]    0    [Plus]
Joined: 29/04/2009 11:28:21
Messages: 306
Offline
[Profile] [PM]
Tôi đã tiến hành triển khai LDAP trên Linux với các bước như sau.

1.Xóa thư mục slapd.d, sử dụng file cấu hình slapd.conf.

Code:
# rm –rf /etc/openldap/slapd.d



2.. Tạo file slapd.conf.trong thư mục /etc/openldap với nội dung như sau
Code:
include  /etc/openldap/schema/corba.schema
include  /etc/openldap/schema/core.schema
include  /etc/openldap/schema/cosine.schema
include  /etc/openldap/schema/duaconf.schema
include  /etc/openldap/schema/dyngroup.schema
include  /etc/openldap/schema/inetorgperson.schema
include  /etc/openldap/schema/java.schema
include  /etc/openldap/schema/misc.schema
include  /etc/openldap/schema/nis.schema
include  /etc/openldap/schema/openldap.schema
include  /etc/openldap/schema/ppolicy.schema
include  /etc/openldap/schema/collective.schema

###################################################
# ldbm and/or bdb database definitions
###################################################

database         bdb
suffix           "dc=network,dc=com"
directory        /var/lib/ldap/network.com
rootdn           "cn=Manager,dc=network,dc=com"
rootpw           mysecret
cachesize 10000 
searchstack 8 
dbnosync 
dirtyread


3.Tạo file database /var/lib/ldap/network.com/DB_CONFIG với nội dung như sau.
Code:
#openLDAP: pkg/ldap/servers/slapd/DB_CONFIG,v 1.3.2.3 2007/08/31 23:13:57 quanah Exp $
# Example DB_CONFIG file for use with slapd(8) BDB/HDB databases.
#
# See Sleepycat Berkeley DB documentation
#   <http://www.sleepycat.com/docs/ref/env/db_config.html>
# for detail description of DB_CONFIG syntax and semantics.
#
# Hints can also be found in the OpenLDAP Software FAQ
#       <http://www.openldap.org/faq/index.cgi?file=2>
# in particular:
#   <http://www.openldap.org/faq/index.cgi?file=1075>

# Note: most DB_CONFIG settings will take effect only upon rebuilding
# the DB environment.

# one 0.25 GB cache
set_cachesize 0 268435456 1

# Data Directory
#set_data_dir db

# Transaction Log settings
set_lg_regionmax 262144
set_lg_bsize 2097152
set_lg_dir /var/log/openldap-logs

# Note: special DB_CONFIG flags are no longer needed for "quick"
# slapadd(8) or slapindex(8) access (see their -q option).


4.Khởi động dịch vụ slapd

Code:
# service slapd restart


Thống báo :

Code:
Stopping slapd: [FAILED]
Starting slapd: [FAILED]

Mong nhận được sự gúp đỡ của mọi người .Cảm ơn
JK - JH
()()()
LTKT - LTT
[Up] [Print Copy]
  [Question]   Starting slapd FAILED 02/10/2010 16:42:54 (+0700) | #2 | 221993
[Avatar]
tranhuuphuoc
Moderator

Joined: 05/09/2004 06:08:09
Messages: 865
Location: Lầu Xanh
Offline
[Profile] [PM] [WWW]
Bro gởi log của OpenLDAP lên , nó nằm ở /var/log/openldap-logs như trong tập tin cấu hình của bro.
[Up] [Print Copy]
  [Question]   Starting slapd FAILED 02/10/2010 16:43:37 (+0700) | #3 | 221994
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]
- Nên chú ý đưa thông tin về distro mình đang dùng để mọi người đỡ phải đoán
- Bạn xem lại permission của thư mục database:
Code:
ls -ld /var/lib/ldap/network.com

- Thảy init script khởi động slapd của bạn lên:
Code:
cat /etc/init.d/slapd
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Starting slapd FAILED 02/10/2010 17:23:10 (+0700) | #4 | 222000
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

tranhuuphuoc wrote:
Bro gởi log của OpenLDAP lên , nó nằm ở /var/log/openldap-logs như trong tập tin cấu hình của bro.
 

Thư mục này chứa các transaction log (log.XXXXXXXXXX) dưới dạng binary chứ không phải log của service OpenLDAP.

Muốn cấu hình log cho OpenLDAP thì bạn đọc man slapd.conf, phần loglevel.
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Starting slapd FAILED 02/10/2010 20:27:55 (+0700) | #5 | 222010
[Avatar]
vitcon01
Member

[Minus]    0    [Plus]
Joined: 29/04/2009 11:28:21
Messages: 306
Offline
[Profile] [PM]
file database em đã chmod 755 rồi.
Distro em đang dùng :Fedora 13
cat /etc/init.d/slapd
Code:
#!/bin/bash
#
# slapd This shell script takes care of starting and stopping
#       ldap servers (slapd).
#
# chkconfig: - 12 73
# description: LDAP stands for Lightweight Directory Access Protocol, used \
#              for implementing the industry standard directory services.
# processname: slapd
# config: /etc/openldap/slapd.conf
# pidfile: /var/run/slapd.pid

### BEGIN INIT INFO
# Provides: slapd
# Required-Start: $network $local_fs
# Required-Stop: $network $local_fs 
# Should-Start: 
# Should-Stop: 
# Default-Start: 
# Default-Stop: 
# Short-Description: starts and stopd OpenLDAP server daemon
# Description: LDAP stands for Lightweight Directory Access Protocol, used
#              for implementing the industry standard directory services.
### END INIT INFO

# Source function library.
. /etc/init.d/functions

# Define default values of options allowed in /etc/sysconfig/ldap
SLAPD_LDAP="yes"
SLAPD_LDAPI="no"
SLAPD_LDAPS="no"
SLAPD_URLS=""
SLAPD_SHUTDOWN_TIMEOUT=3
# OPTIONS, SLAPD_OPTIONS and KTB5_KTNAME are not defined

# Source an auxiliary options file if we have one
if [ -r /etc/sysconfig/ldap ] ; then
        . /etc/sysconfig/ldap
fi

slapd=/usr/sbin/slapd
slaptest=/usr/sbin/slaptest
lockfile=/var/lock/subsys/slapd
configdir=/etc/openldap/slapd.d/
configfile=/etc/openldap/slapd.conf
pidfile=/var/run/slapd.pid
slapd_pidfile=/var/run/openldap/slapd.pid

RETVAL=0

#
# Pass commands given in $2 and later to "test" run as user given in $1.
#
function testasuser() {
    local user= cmd=
    user="$1"
    shift
    cmd="$@"
    if test x"$user" != x ; then
        if test x"$cmd" != x ; then
            /sbin/runuser -f -m -s /bin/sh -c "test $cmd" -- "$user"
        else
            false
        fi
    else
        false
    fi
}

#
# Check for read-access errors for the user given in $1 for a service named $2.
# If $3 is specified, the command is run if "klist" can't be found.
#
function checkkeytab() {
    local user= service= klist= default=
    user="$1"
    service="$2"
    default="${3:-false}"
    if test -x /usr/kerberos/bin/klist ; then
        klist=/usr/kerberos/bin/klist
    elif test -x /usr/bin/klist ; then
        klist=/usr/bin/klist
    fi
    KRB5_KTNAME="${KRB5_KTNAMEsmilieetc/krb5.keytab}"
    export KRB5_KTNAME
    if test -s "$KRB5_KTNAME" ; then
        if test x"$klist" != x ; then
            if LANG=C $klist -k "$KRB5_KTNAME" | tail -n 4 | awk '{print $2}' | grep -q ^"$service"/ ; then
                if ! testasuser "$user" -r ${KRB5_KTNAMEsmilieetc/krb5.keytab} ; then
                    true
                else
                    false
                fi
            else
                false
            fi
        else
            $default
        fi
    else
        false
    fi
}

function configtest() {
        local user= ldapuid= dbdir= file=
        # Check for simple-but-common errors.
        user=ldap
        prog=`basename ${slapd}`
        ldapuid=`id -u $user`
        # Unaccessible database files.
        slaptestflags=""
        dbdirs=""
    if [ -d $configdir ]; then
            for configfile in `ls -1 $configdir/cn\=config/olcDatabase*.ldif`; do
                    dbdirs=$dbdirs"
                    "`LANG=C egrep '^olcDbDirectory[[:space:]]*:[[:space:]]+[[:print:]]+$' $configfile | sed 's,^olcDbDirectory: ,,'`
            done
    elif [ -f $configfile ]; then
                    dbdirs=`LANG=C egrep '^directory[[:space:]]+' $configfile | sed 's,^directory[[:space:]]*,,'`
    else
        exit 6
    fi
        for dbdir in $dbdirs; do
                if [ ! -d $dbdir ]; then
                        exit 6
                fi
                for file in `find ${dbdir}/ -not -uid $ldapuid -and \( -name "*.dbb" -or -name "*.gdbm" -or -name "*.bdb" -or -name "__db.*" -or -name "log.*" -or -name alock \)` ; do
                        echo -n $"$file is not owned by \"$user\"" ; warning ; echo
                done
                if ! test -s ${dbdir}/id2entry.dbb ; then
                        if ! test -s ${dbdir}/id2entry.gdbm ; then
                                if ! test -s ${dbdir}/id2entry.bdb ; then
                                        slaptestflags="-u"
                                fi
                        fi
                fi
        done
        # Unaccessible keytab with an "ldap" key.
        if checkkeytab $user ldap ; then
                file=${KRB5_KTNAMEsmilieetc/krb5.keytab}
                echo -n $"$file is not readable by \"$user\"" ; warning ; echo
        fi
        # Unaccessible TLS configuration files.
    if [ -d $configdir ]; then
                tlsconfigs=`LANG=C awk '/^olcTLS/ {
                                while (/^olcTLS/) {
                                        if (/^olc(TLSCertificateKeyFile|TLSCertificateFile|TLSCACertificateFile)[ \t]*:[\t]*/) {
                                                do { printf gensub(/^ /,"",1); getline } while (/^ /)
                                                printf "\n" ;
                                        }
                                        else break; 
                                }
                        }' $configdir/cn\=config.ldif | awk '{print $2}'`
    elif [ -f $configfile ]; then
            tlsconfigs=`LANG=C egrep '^(TLSCACertificateFile|TLSCertificateFile|TLSCertificateKeyFile)[[:space:]]+' $configfile | awk '{print $2}'`
    fi
        for file in $tlsconfigs ; do
                if ! testasuser $user -r $file ; then
                        echo -n $"$file is not readable by \"$user\"" ; warning ; echo
                fi
        done
        # Check the configuration file.
        slaptestout=`/sbin/runuser -m -s "$slaptest" -- "$user" $slaptestflags 2>&1`
        slaptestexit=$?
#       slaptestout=`echo $slaptestout 2>/dev/null | grep -v "config file testing succeeded"`
        # print warning if slaptest passed but reports some problems
        if test $slaptestexit == 0 ; then
                if echo "$slaptestout" | grep -v "config file testing succeeded" >/dev/null ; then
                        echo -n $"Checking configuration files for $prog: " ; warning ; echo
                        echo "$slaptestout"
                fi
        fi
        # report error if configuration file is wrong
        if test $slaptestexit != 0 ; then
                echo -n $"Checking configuration files for $prog: " ; failure ; echo
                echo "$slaptestout"
                if /sbin/runuser -m -s "$slaptest" -- "$user" "-u" > /dev/null 2> /dev/null ; then
                        #dirs=`LANG=C egrep '^directory[[:space:]]+[[:print:]]+$' $configfile | awk '{print $2}'`
                        for directory in $dbdirs ; do
                                if test -r $directory/__db.001 ; then
                                        echo -n $"stale lock files may be present in $directory" ; warning ; echo
                                fi
                        done
                fi
                exit 6
        fi
}

function start() {
        [ -x $slapd ] || exit 5
        [ `id -u` -eq 0 ] || exit 4
        configtest
        # Define a couple of local variables which we'll need. Maybe.
        user=ldap
        prog=`basename ${slapd}`
        harg="$SLAPD_URLS"
        if test x$SLAPD_LDAP = xyes ; then
            harg="$harg ldap:///"
        fi
        if test x$SLAPD_LDAPS = xyes ; then
            harg="$harg ldaps:///"
        fi
        if test x$SLAPD_LDAPI = xyes ; then
            harg="$harg ldapi:///"
        fi
        # Start daemons.
        echo -n $"Starting $prog: "
        daemon --pidfile=$pidfile --check=$prog ${slapd} -h "\"$harg\"" -u ${user} $OPTIONS $SLAPD_OPTIONS 
        RETVAL=$?
        if [ $RETVAL -eq 0 ]; then
                touch $lockfile
                ln $slapd_pidfile $pidfile
        fi
        echo
        return $RETVAL
}

function stop() {
        # Stop daemons.
        prog=`basename ${slapd}`
        [ `id -u` -eq 0 ] || exit 4
        echo -n $"Stopping $prog: "

        # This will remove pid and args files from /var/run/openldap
        killproc -p $slapd_pidfile -d $SLAPD_SHUTDOWN_TIMEOUT ${slapd}
        RETVAL=$?

        # Now we want to remove lock file and hardlink of pid file
        [ $RETVAL -eq 0 ] && rm -f $pidfile $lockfile
        echo
        return $RETVAL
}

# See how we were called.
case "$1" in
    configtest)
        configtest
        ;;
    start)
        start
        RETVAL=$?
        ;;
    stop)
        stop
        RETVAL=$?
        ;;
    status)
        status -p $pidfile ${slapd}
        RETVAL=$?
        ;;
    restart|force-reload)
        stop
        start
        RETVAL=$?
        ;;
    condrestart|try-restart)
        status -p $pidfile ${slapd} > /dev/null 2>&1 || exit 0
        stop
        start
        ;;
    usage)
        echo $"Usage: $0 {start|stop|restart|force-reload|status|condrestart|try-restart|configtest|usage}"
        RETVAL=0
        ;;
    *)
        echo $"Usage: $0 {start|stop|restart|force-reload|status|condrestart|try-restart|configtest|usage}"
        RETVAL=2
esac

exit $RETVAL

Tiện thể anh quanta cho em xin một vài cuốn tìa liệu linux(tất cả nếu có thể), hoặc tên sách.Cảm ơn
JK - JH
()()()
LTKT - LTT
[Up] [Print Copy]
  [Question]   Starting slapd FAILED 02/10/2010 20:32:56 (+0700) | #6 | 222011
[Avatar]
vitcon01
Member

[Minus]    0    [Plus]
Joined: 29/04/2009 11:28:21
Messages: 306
Offline
[Profile] [PM]

quanta wrote:

tranhuuphuoc wrote:
Bro gởi log của OpenLDAP lên , nó nằm ở /var/log/openldap-logs như trong tập tin cấu hình của bro.
 

Thư mục này chứa các transaction log (log.XXXXXXXXXX) dưới dạng binary chứ không phải log của service OpenLDAP.

Muốn cấu hình log cho OpenLDAP thì bạn đọc man slapd.conf, phần loglevel



-->em đã thêm 2 dòng vào file cấu hình slapd.conf

Code:
logfile /var/log/openldap
loglevel 256

256:cho biết kết nối, hoạt động và kết quả của ldap, họ bảo nên dùng tham số này, nhưng không thấy tín hiệu gì cho việc này.
JK - JH
()()()
LTKT - LTT
[Up] [Print Copy]
  [Question]   Starting slapd FAILED 02/10/2010 21:20:42 (+0700) | #7 | 222014
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

vitcon01 wrote:
file database em đã chmod 755 rồi.
 

Vậy còn owner và group thì sao?

vitcon01 wrote:

Tiện thể anh quanta cho em xin một vài cuốn tìa liệu linux(tất cả nếu có thể), hoặc tên sách.Cảm ơn 

Bạn tìm lại trên diễn đàn nhé.

vitcon01 wrote:

quanta wrote:

Thư mục này chứa các transaction log (log.XXXXXXXXXX) dưới dạng binary chứ không phải log của service OpenLDAP.

Muốn cấu hình log cho OpenLDAP thì bạn đọc man slapd.conf, phần loglevel



-->em đã thêm 2 dòng vào file cấu hình slapd.conf

Code:
logfile /var/log/openldap
loglevel 256

256:cho biết kết nối, hoạt động và kết quả của ldap, họ bảo nên dùng tham số này, nhưng không thấy tín hiệu gì cho việc này. 

man page của bạn có option logfile à? Chỉnh loglevel xong còn cần cấu hình syslog nữa:
Code:
# echo -e "local4.*\t\t\t\t\t\t/var/log/openldap.log" >> /etc/syslog.con
# service syslog restart
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Starting slapd FAILED 02/10/2010 21:27:36 (+0700) | #8 | 222015
[Avatar]
vitcon01
Member

[Minus]    0    [Plus]
Joined: 29/04/2009 11:28:21
Messages: 306
Offline
[Profile] [PM]
Vậy còn owner và group thì sao?  

Code:
[root@localhost ~]# ls -l /var/lib/ldap/network.com/
total 4
-rwxr-xr-x. 1 root root 903 Sep  8 20:28 DB_CONFIG


em đã thử chạy lệnh này

# service syslog restart 


--->nhưng báo không tồn tại dịch vụ này

[root@localhost ~]# service syslog restart
syslog: unrecognized service 
JK - JH
()()()
LTKT - LTT
[Up] [Print Copy]
  [Question]   Starting slapd FAILED 02/10/2010 21:36:10 (+0700) | #9 | 222017
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

vitcon01 wrote:
Vậy còn owner và group thì sao?  

Code:
[root@localhost ~]# ls -l /var/lib/ldap/network.com/
total 4
-rwxr-xr-x. 1 root root 903 Sep  8 20:28 DB_CONFIG

 

Thử:
Code:
# chown -R ldap:ldap /var/lib/ldap/network.com

vitcon01 wrote:

em đã thử chạy lệnh này

# service syslog restart 


--->nhưng báo không tồn tại dịch vụ này

[root@localhost ~]# service syslog restart
syslog: unrecognized service 
 

Chắc nó là rsyslog:
Code:
# ls /etc/init.d/ | grep syslog
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Starting slapd FAILED 02/10/2010 21:45:34 (+0700) | #10 | 222018
[Avatar]
vitcon01
Member

[Minus]    0    [Plus]
Joined: 29/04/2009 11:28:21
Messages: 306
Offline
[Profile] [PM]
Nội dung file log :

Code:
Sep  9 01:46:33 localhost slapd[21325]: @(#) $OpenLDAP: slapd 2.4.21 (Jul 20 2010 16:52:45) $#012#011mockbuild@x86-15.phx2.fedoraproject.org:/builddir/build/BUILD/openldap-2.4.21/openldap-2.4.21/build-servers/servers/slapd
Sep  9 01:46:33 localhost slapd[21325]: daemon: bind(7) failed errno=98 (Address already in use)
Sep  9 01:46:33 localhost slapd[21325]: daemon: bind(7) failed errno=98 (Address already in use)
Sep  9 01:46:33 localhost slapd[21325]: slapd stopped.
Sep  9 01:46:33 localhost slapd[21325]: connections_destroy: nothing to destroy.
JK - JH
()()()
LTKT - LTT
[Up] [Print Copy]
  [Question]   Starting slapd FAILED 02/10/2010 22:16:18 (+0700) | #11 | 222020
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]
Bạn kiểm tra lại xem ldap đã start chưa:
Code:
pgrep slapd
ps -ef | grep slapd

Có ứng dụng nào đang chiếm cổng 389 không:
Code:
lsof -i :389

Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Starting slapd FAILED 02/10/2010 22:24:23 (+0700) | #12 | 222022
[Avatar]
vitcon01
Member

[Minus]    0    [Plus]
Joined: 29/04/2009 11:28:21
Messages: 306
Offline
[Profile] [PM]
Cảm ơn anh quanta em đã tìm ra nguyên nhân vấn đề rôi.

JK - JH
()()()
LTKT - LTT
[Up] [Print Copy]
  [Question]   Starting slapd FAILED 05/08/2011 10:02:18 (+0700) | #13 | 244585
destiny90
Member

[Minus]    0    [Plus]
Joined: 07/06/2011 00:19:31
Messages: 14
Offline
[Profile] [PM]
vitcon01 ơi bạn có thể nói rõ cách khắc phục lỗi này được không?
Mình cũng bị thông báo lỗi tương tự như vậy

Code:
daemon: bind(7) failed errno=98 (Address already in use) 
daemon: bind(7) failed errno=98 (Address already in use) 
slapd stopped. 
connections_destroy: nothing to destroy.


@quanta:Em đánh lệnh
Code:
ps -ef | grep slapd


nó thông báo như sau:
Code:
openldap 2590 1 0 10:15 ? 00:00:00 /usr/sbin/slapd -h ldap:/// ldapi:/// -g openldap -u openldap -F /etc/ldap/slapd.d
root 2624 1539 0 10:34 tty1 00:00:00 grep --color=auto slapd

Code:
lsof -i :389


Code:
COMMAND PID            USER     FD       TYPE     DEVICE   SIZE/OFF NODE NAME
slapd       2590       openldap   9u         IPv4       18926      0t0         TCP    *:ldap (LISTEN)
slapd       2590       openldap   10u       IPv6       18927      0t0         TCP    *:ldap (LISTEN)

Mong được mọi người giúp đỡ.Cám ơn smilie
[Up] [Print Copy]
  [Question]   Starting slapd FAILED 05/08/2011 21:01:45 (+0700) | #14 | 244617
[Avatar]
vitcon01
Member

[Minus]    0    [Plus]
Joined: 29/04/2009 11:28:21
Messages: 306
Offline
[Profile] [PM]
--->lâu quá rồi, vì không có điều kiện để thực hiện tiếp đề tài này, nên mình cũng ko nhớ chính xác không, với dòng log thông báo lỗi như trên, có nghĩa là đã tồn tại một socket trước đó, nếu vậy bồ disable socket đó đi, bằng cách nào kill tiến trình đi nhé.
--->Theo như kết quả từ lệnh lsof -i :389 của bồ, bồ dùng lệnh sau để kill
Code:
kill -9 2590
JK - JH
()()()
LTKT - LTT
[Up] [Print Copy]
  [Question]   Starting slapd FAILED 05/08/2011 21:41:52 (+0700) | #15 | 244626
destiny90
Member

[Minus]    0    [Plus]
Joined: 07/06/2011 00:19:31
Messages: 14
Offline
[Profile] [PM]
Cám ơn bạn.Mình đã thử nhưng vẫn chưa được.Giờ mình cài lại + đọc lại hướng dẫn sử dụng smilie.
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|