啟動slapd
不論是包安裝還是編譯安裝的OpenLDAP服務,啟動LDAP服務通常使用類似這樣的方式運行:
/usr/sbin/slapd -h ldap:/// ldapi:/// -g openldap -u openldap -F /etc/ldap/slapd.d/
如果沒有任何的配置是否可以啟動slapd呢?
$mkdir ldap_slapd.d
$/usr/sbin/slapd -d 65535 -h ldap://localhost:3890 -F ldap_slapd.d
系統提示沒有配置目錄中沒有 cn=config.ldif 文件
最簡單的配置
現在在配置目錄中寫一個最簡單的配置:
$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

成功啟動!在ldap_slapd.d下生成了cn=config 目錄并且將基本的schema自動的導入了,從運行日志中也可以看到這些。
通過這個例子可以看到slapd運行的過程,但這樣一個沒有實際Backend數據庫的slapd實例是沒有實際意義的。
配置
slapd的配置就是運行的關鍵,在新版OpenLDAP中,LDAP配置不再是slapd.conf,而是一系列的配置文件,放置在一個配置目錄下。LDAP將這個目錄看成一種Backend,也就是config backend。配置目錄中是若干的ldif文件,然后通過子目錄的方式表現樹形結構,以文件名表示配置節點的名稱。
slapd.d 目錄
LDAP的配置Backend包含3個內容:Schema、Backend、Database,都以ldif方式直接寫在配置文件中。backend和database配置相對較小可直接編輯,而schema比較復雜,如有外部定義的schema更是麻煩,如果直接編輯很麻煩也容易出錯。好在可以使用slaptest將舊式的.conf文件生成新配置。
實際上,slaptest的功能還不止這個,它還負責創建基本的數據庫文件。最新版的OpenLDAP在安裝后還是使用slapd.conf作為配置文件,然后在運行前創建配置Backend。
slapd.conf
slapd.conf由2個部分,先include schema文件,然后配置database。要注意后面database內容的語法是依賴core.schema的,所以沒有 include core.schema,后面的內容是不符合語法的。
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
運行:
$sudo /usr/bin/slaptest -f schema.conf -F /etc/ldap/slapd.d
slaptest要完成2個工作:將按schema生成schema.ldif配置,然后在指定的目錄下初始化bdb文件。