啟動(dòng)slapd
不論是包安裝還是編譯安裝的OpenLDAP服務(wù),啟動(dòng)LDAP服務(wù)通常使用類似這樣的方式運(yùn)行:
/usr/sbin/slapd -h ldap:/// ldapi:/// -g openldap -u openldap -F /etc/ldap/slapd.d/
如果沒有任何的配置是否可以啟動(dòng)slapd呢?
$mkdir ldap_slapd.d
$/usr/sbin/slapd -d 65535 -h ldap://localhost:3890 -F ldap_slapd.d
系統(tǒng)提示沒有配置目錄中沒有 cn=config.ldif 文件
最簡(jiǎn)單的配置
現(xiàn)在在配置目錄中寫一個(gè)最簡(jiǎn)單的配置:
$cat ldap_slapd.d/cn=config.ldif
dn: cn=config
objectClass: olcGlobal
cn: config
$/usr/sbin/slapd -d 65535 -h ldap://localhost:3890 -F ldap_slapd.d

成功啟動(dòng)!在ldap_slapd.d下生成了cn=config 目錄并且將基本的schema自動(dòng)的導(dǎo)入了,從運(yùn)行日志中也可以看到這些。
通過這個(gè)例子可以看到slapd運(yùn)行的過程,但這樣一個(gè)沒有實(shí)際Backend數(shù)據(jù)庫的slapd實(shí)例是沒有實(shí)際意義的。
配置
slapd的配置就是運(yùn)行的關(guān)鍵,在新版OpenLDAP中,LDAP配置不再是slapd.conf,而是一系列的配置文件,放置在一個(gè)配置目錄下。LDAP將這個(gè)目錄看成一種Backend,也就是config backend。配置目錄中是若干的ldif文件,然后通過子目錄的方式表現(xiàn)樹形結(jié)構(gòu),以文件名表示配置節(jié)點(diǎn)的名稱。
slapd.d 目錄
LDAP的配置Backend包含3個(gè)內(nèi)容:Schema、Backend、Database,都以ldif方式直接寫在配置文件中。backend和database配置相對(duì)較小可直接編輯,而schema比較復(fù)雜,如有外部定義的schema更是麻煩,如果直接編輯很麻煩也容易出錯(cuò)。好在可以使用slaptest將舊式的.conf文件生成新配置。
實(shí)際上,slaptest的功能還不止這個(gè),它還負(fù)責(zé)創(chuàng)建基本的數(shù)據(jù)庫文件。最新版的OpenLDAP在安裝后還是使用slapd.conf作為配置文件,然后在運(yùn)行前創(chuàng)建配置Backend。
slapd.conf
slapd.conf由2個(gè)部分,先include schema文件,然后配置database。要注意后面database內(nèi)容的語法是依賴core.schema的,所以沒有 include core.schema,后面的內(nèi)容是不符合語法的。
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/inetorgperson.schema
include /user/defined/special.schema


database bdb
suffix "dc=example,dc=com"
rootdn "cn=admin,dc=example,dc=com"
rootpw secret
directory /ldap/data/dir
index objectClass eq

slaptest
運(yùn)行:
$sudo /usr/bin/slaptest -f schema.conf -F /etc/ldap/slapd.d
slaptest要完成2個(gè)工作:將按schema生成schema.ldif配置,然后在指定的目錄下初始化bdb文件。