輕型目錄訪問協議(英文:Lightweight Directory Access Protocol,縮寫:LDAP)是一個開放的,中立的,工業標準的應用協議,經過IP協議提供訪問控制和維護分佈式信息的目錄信息。
OpenLDAP是輕型目錄訪問協議(Lightweight Directory Access Protocol,LDAP)的自由和開源的實現,在其OpenLDAP許可證下發行,並已經被包含在衆多流行的Linux發行版中。
能夠這樣講:市面上只要你可以想像獲得的全部工具軟件,所有都支持LDAP協議。好比說你公司要安裝一個項目管理工具,那麼這個工具幾乎必然支持LDAP協議,你公司要安裝一個bug管理工具,這工具必然也支持LDAP協議,你公司要安裝一套軟件版本管理工具,這工具也必然支持LDAP協議。LDAP協議的好處就是你公司的全部員工在全部這些工具裏共享同一套用戶名和密碼,來人的時候新增一個用戶就能自動訪問全部系統,走人的時候一鍵刪除就取消了他對全部系統的訪問權限,這就是LDAP。php
這幾天因爲項目須要,經理讓我研究一下openldap,寫一個鏈接openldap以及實現與openldap數據交互的SDK。以前歷來沒有接觸過openldap,因此我想從安裝作起,作一個記錄,很少說了,下面是步驟:
我用的是銀河麒麟系統,內核是ubuntu的,首先要將用戶轉爲root權限,下面開始安裝。html
安裝openldap前提是已經安裝好openssl和BerkeleyDB,咱們先來安裝openssl(這個雖然系統自帶,可是最好不要卸載,從新安裝一個,卸載以後不少服務可能起不來)
下載地址:https://www.openssl.org/source/
以後解壓linux
tar -zxvf +壓縮包名
進入文件shell
cd 文件名
執行命令數據庫
./config shared #注意這裏是用./config 會安裝到/usr/local/ssl make make install
配置庫文件搜索路徑ubuntu
echo "/usr/local/ssl/lib" >> /etc/ld.so.conf ldconfig -V
這2句的做用就是通知系統Berkeley DB的動態連接庫在/usr/local/berkeleydb/lib/目錄。緩存
ld.so.conf文件配置了須要讀入告訴緩存中的動態函數庫所在目錄 從新配置ld.so.conf後,在命令行執行ldconfig命令生效該軟件默認是安裝在/usr/local/BerkeleyDB.4.2目錄下。安裝完成後,要把/usr/local/BerkeleyDB.4.2/lib的庫路徑加到/etc/ld.so.conf文件內,添加完成後執行一次ldconfig,使配置文件生效。這樣編譯openldap時才能找到相應的庫文件。oracle
它就是系統動態連接庫的配置文件。此文件內,存放着可被LINUX共享的動態連接庫所在目錄的名字(系統目錄/lib,/usr/lib除外),各個目錄名間以空白字符(空格,換行等)或冒號或逗號分隔。通常的LINUX發行版中,此文件均含一個共享目錄/usr/X11R6/lib,爲X window窗口系統的動態連接庫所在的目錄。 ldconfig是它的管理命令,具體操做方法可查詢man手冊app
它是一個程序,一般它位於/sbin下,是root用戶使用的東東。具體做用及用法能夠man ldconfig查到
簡單的說,它的做用就是將/etc/ld.so.conf列出的路徑下的庫文件 緩存到/etc/ld.so.cache 以供使用
所以當安裝完一些庫文件,(例如剛安裝好glib),或者修改ld.so.conf增長新的庫路徑後,須要運行一下/sbin/ldconfig
使全部的庫文件都被緩存到ld.so.cache中,若是沒作,即便庫文件明明就在/usr/lib下的,也是不會被使用的,結果編譯過程當中抱錯,缺乏xxx庫,去查看發現明明就在那放着......分佈式
下載地址: http://www.oracle.com/technet...(注意要根據openldap的README文件中的內容下載合適的版本下面是一段原文,在下載時必定要注意!)
SLAPD: BDB and HDB backends require Oracle Berkeley DB 4.4 - 4.8, or 5.0 - 5.1. It is highly recommended to apply the patches from Oracle for a given release.
以後執行命令
tar -zxvf +壓縮包名 cd 文件名 cd build_unix ../dist/configure --prefix=/usr/local/berkeleydb --enable-cxx #其中–enable-cxx就是編譯C++庫,這樣才能編譯Berkeley DB數據庫的PHP擴展php_db4。 make make install echo '/usr/local/berkeleydb/lib/' >> /etc/ld.so.conf ldconfig #添加完成後執行一次ldconfig,使配置文件生效。這樣編譯openldap時才能找到相應的庫文件。 ldconfig -V
終於進入正題,下載地址:http://www.openldap.org/softw...
以後執行命令
tar -zxvf +壓縮包名 cd 文件名 env CPPFLAGS="-I/usr/local/berkeleydb/include" LDFLAGS="-L/usr/local/berkeleydb/lib" LD_LIBRARY_PATH="/usr/local/berkeleydb/lib" ./configure --prefix=/usr/local/openldap --enable-ldbm --enable-overlays --enable-ldap --enable-accesslog --enable-syncprov
注意以上配置語句,要設置資料庫的include和lib路徑,不然在配置到資料庫相關內容時會提示Berkeley DB版本不兼容,並中斷配置。若是沒有--enable-ldbm選項,在make test時會提示ldbm找不到。爲了減小出錯,仍是加上爲好。後面的幾個參數是爲了使用openldap的同步協議,必須在編譯階段強制開啓以下的編譯選項,其中-enable-ldap 選項用於支持ldap代理,在同步中用來推送數據;--enable-accesslog 選項用於記錄用戶操做,在同步中用於記錄服務端的數據修改;--enable-syncprov 選項用於支持數據同步引擎。
make depend make make test # (在make test階段要花費較長時間進行測試,好像有16項吧。能夠放在那裏等,本身作其餘事情,不過成與不成就看這下的了,若是沒問題就可安裝了) make install
配置庫文件搜索路徑
echo "/usr/local/openldap/lib" >> /etc/ld.so.conf ldconfig -V
說說這裏的坑吧,第一次裝這個東西,網上的資料要麼對新人不太友好,要麼就是過期的資料,還有就是自己就是錯誤的,總之安裝挺不容易的,我具體說說吧,一個就是剛纔我寫到的,以前裝的BerkeleyDB版本過高,致使在裝openldap時提示BerkeleyDB不可用,後來裝了適合的版本,又提示版本不匹配,google後在./configure以前添加
LD_LIBRARY_PATH="/usr/local/berkeleydb/lib"
好不容易能夠執行下一步了,在make test 時又測試失敗,原來動態鏈接庫出問題了,沒有設置正確,致使運行時的庫文件沒能找到,因此要檢查環境變量.LD_LIBRARY_PATH中必定要有系統的以及bdb的環境庫文件位置.以前可能直接複製的,沒有看路徑致使的錯誤......總之「驚喜」不斷,不過最後仍是安裝成功了,先喘口氣,後面還有更大的考驗......
從源碼安裝程序時,須要依此執行如下步驟:
./configure make make install 他們的含義:
這些都是典型的使用GNU的AUTOCONF和AUTOMAKE產生的程序的安裝步驟。 ./configure是用來檢測你的安裝平臺的目標特徵的。好比它會檢測你是否是有CC或GCC,並非須要CC或GCC,它是個shell腳本 make是用來編譯的,它從Makefile中讀取指令,而後編譯。 make install是用來安裝的,它也從Makefile中讀取指令,安裝到指定的位置。