LINUX下安裝openldap,並用phpldapadmin進行管理 BDB:Berkeley DB,openldap需要使用的數據庫(貌似還有別的數據庫可用,但這次我要用到它) phpldapadmin:openldap的網頁管理軟件,需要php支持,所以會有apache+php一說。 linux: CentOS5.4 ip:192.168.1.6 bdb與openldap會有兼容性問題,2.3和2.4的openldap與4.8的bdb不兼容,後來發現2.3的openldap需要的bdb版本應該爲4.4-4.6之間,所以這裏就選擇了4.5的bdb。(裝64位系統的時候,4.5的卻不兼容,讓換成4.3.29的,我暈死。。。) 1.安裝apache ./configure --prefix=/usr/local/apache2 --enable-so --enalbe-rewrite //安裝到指定目錄,so開啓動態模塊支持,rewrite開啓地址重寫。 make;make install 2.安裝php ./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/php5 --with-ldap --with-gettext //指定安裝目錄,跟apache融合,指定配置文件位置,啓用ldap支持(必須的),啓用gettext支持(必須要啓用的支持) make;make install cp php.ini-dist /usr/local/php5/php.ini //把配置文件拷貝過去,編輯它在適當位置添加include_path = /usr/local/php5/lib/php 3.修改apache讓其支持php vi /usr/local/apache2/conf/httpd.conf AddType application/x-httpd-php .php DirectoryIndex index.html index.php //在DirectoryIndex後面加個index.php,類似前面這樣子 保存退出。 4.安裝bdb tar zcvf db-4.5.20.tar.gz cd db-4.5.20/build_unix //bdb需要在這個目錄裏編譯(不同於其它大多數linux程序,算一特異者吧) ../dist/configure --prefix=/usr/local/db //bdb的配置文件在dist目錄裏(這種編譯安裝在linux裏沒有普遍性,所以不必因此困擾,大多數linux程序還都是直接在解包出來的根目錄裏直接編譯安裝就行了的) make make install //make;make install中間有分號是因爲兩條命令寫在同一行裏必須要用;分隔,而此處則是把兩條命令分開執行,所以;也就不用了,其實結果是一樣的。 vi /etc/ld.so.conf 手工加入以下內容: 5.安裝openldap vi /etc/profile 在末尾手工加入以下內容: LD_RUN_PATH=/usr/local/db/lib //這個可能不是必須的。 LD_LIBRARY_PATH=/usr/local/db/lib //必須的,少了安裝會報錯 export LD_RUN_PATH LD_LIBRARY_PATH //導出變量,也是必須的,要不變量沒法生效 保存退出 source /etc/profile //讓剛設置的變量立刻生效 env CPPFLAGS="-I /usr/local/db/include" LDFLAGS="-L /usr/local/db/lib" ./configure --prefix=/usr/local/openldap --enable-bdb //CPP和LD這兩個環境變量應該可以跟剛纔的LD_LIBRARY那個變量一樣設置在profile文件裏的,但是大家都是在這裏設置,可能是因爲這兩個變量都是隻在安裝時用一次吧,所以我這裏也就隨大家寫在命令裏而不是寫在profile裏了,記得要啓用bdb,要不我們的bdb就白裝了。(裝64位系統的時候又報錯缺少ltdl.h,後來locate ltdl找到了它的位置,然後命令改成了env CPPFLAGS="-I /usr/local/db/include" LDFLAGS="-L /usr/local/db/lib" LDFLAGS="-L /usr/share/libtool/libltdl" ./configure --prefix=/usr/local/openldap --enable-bdb,就是多加了紅色字體部分。真暈,同樣的操作配置,32位能過,64位系統就過不了。。。)(試過多種方法64位系統總是提示缺少ltdl.h,最後實在耗不起那個時間了然後就直接yum install openldap-servers了事,此時卻發現yum安裝時安裝了一個名爲libtool-ltdl-1.5.22-7.el5_4的依賴包,難道就是因爲缺少這個包導致的編譯通不過?)(yum安裝openldap主要是安裝openldap、openldap-devel、openldap-servers、openldap-clients這四種包) make depend //解決依賴問題 6.修改openldap配置文件 vi /usr/local/openldap/etc/openldap/slapd.conf include /usr/local/openldap/etc/openldap/schema/core.schema //本行後面這些include行手工添加一下,這些schema都在openldap安裝目錄下的etc/openldap/schema下,可以進去該目錄看下都有什麼schema,把有的全都添加到這裏,以後用起來也方便。 database bdb //本行後面這些行是可能需要修改的,bdb就是我們的Berkeley DB數據庫了 保存退出 /usr/local/openldap/bin/ldappasswd //生成管理者密碼,回車後輸入兩遍密碼就可以了 /usr/local/openldap/libexec/slapd //啓動openldap 7.安裝phpldapadmin tar zxvf phpldapadmin-1.2.0.5.tgz mv phpldapadmin-1.2.0.5/* /usr/local/apache2/htdocs/ //解包,把得到的文件弄到apache的網頁根目錄htdocs裏就算安裝完事 8.修改phpldapadmin配置文件 cp /usr/local/apache2/htdocs/config/config.{php.example,php} //用配置文件模板拷貝一份配置文件出來 vi /usr/local/apache2/htdocs/config/config.php $servers->setValue('server','name','GASO LDAP Server'); //本行及後面這些行(讀hang)爲關鍵參數,可按實際情況修改,此處指定服務器的顯示名稱爲GASO LDAP Server,該名稱可隨意設置
9.訪問phpldapadmin管理openldap http://192.168.1.6/(安裝openldap服務的系統的ip,不要連別人的名字都抄到答卷上了哦) 沒意外的話就可以看到phpldapadmin的登錄頁面了(八成會有意外,第一次在所難免啊!) 10.關於ldap的一些理解 我們可以想象有一顆蘋果樹,樹枝就是樹幹的延伸。 |