LINUX+APACHE+PHP+BDB+OPENLDAP+PHPLDAPADMIN安裝配置

主要是看下BDB的安裝了,驗證可用。
LINUX+APACHE+PHP+BDB+OPENLDAP+PHPLDAPADMIN安裝配置
 

 

LINUX下安裝openldap,並用phpldapadmin進行管理

BDB:Berkeley DB,openldap需要使用的數據庫(貌似還有別的數據庫可用,但這次我要用到它)

phpldapadmin:openldap的網頁管理軟件,需要php支持,所以會有apache+php一說。

linux:    CentOS5.4   ip:192.168.1.6
apache:    httpd-2.2.14.tar.bz2
php:    php-5.2.12.tar.gz
bdb:    db-4.5.20.tar.gz
openldap:    openldap-stable-2.3.32.tgz
phpldapadmin:    phpldapadmin-1.2.0.5.tgz

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
AddType application/x-httpd-php-source .phps
              //在合適的位置添加這兩行,.php和.phps前面都帶“點”的,再前面還都有一“空格”的,不要寫錯了哦。

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      手工加入以下內容: 
/usr/local/db/lib
/sbin/ldconfig

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                                                        //解決依賴問題
make
make test
                                                             //有自信的可以不檢測,這個不是必須的。
make install

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,把有的全都添加到這裏,以後用起來也方便。
include         /usr/local/openldap/etc/openldap/schema/corba.schema 
include         /usr/local/openldap/etc/openldap/schema/cosine.schema 
include         /usr/local/openldap/etc/openldap/schema/dyngroup.schema 
include         /usr/local/openldap/etc/openldap/schema/inetorgperson.schema 
include         /usr/local/openldap/etc/openldap/schema/java.schema 
include         /usr/local/openldap/etc/openldap/schema/misc.schema 
include         /usr/local/openldap/etc/openldap/schema/nis.schema 
include         /usr/local/openldap/etc/openldap/schema/openldap.schema

database        bdb                                                                            //本行後面這些行是可能需要修改的,bdb就是我們的Berkeley DB數據庫了
suffix          "dc=gaso,dc=com"                                                        //suffix(後綴),以後所有的ldap數據記錄都將放在它的下面,你可以把它看成是數據庫的總庫,之後的phpldapadmin中也需要指定它並且要跟這裏的設置一致(6個多小時的時間花費得來的經驗!),它的格式有:dc=gaso,dc=com或者o=gaso,dc=com或者cn=gaso,dc=com,這些樣子的應該都可以(沒試過哦,推測的,有興趣的可以試下),應該比較靈活,甚至直接dc=com我估計也行(沒試過哦)。我推測就是給個樹根好讓以後蘋果有地方長,至於樹根長什麼模樣,蘋果是不會介意的:),怎麼的蘋果也是長樹枝上的,中間還隔着樹幹呢,哈哈!
rootdn          "cn=root,dc=gaso,dc=com"                                          //openldap的管理者(就跟系統的管理員類似,openldap的“大權在握者”)
rootpw          {SSHA}rWWrzQ60N42lNONcZFaKovPrgWSjn5/Z          //管理者密碼,該密碼串需要通過ldappasswd命令(openldap安裝目錄下的bin目錄裏)來生成
directory       /usr/local/openldap/var/openldap-data                        //指定openldap數據庫的存放目錄

保存退出

/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,該名稱可隨意設置
$servers->setValue('server','host','127.0.0.1');                                     //指定openldap服務器就是本機
$servers->setValue('server','port',389);                                              //指定openldap服務使用的端口爲389
$servers->setValue('server','base',array('dc=gaso,dc=com'));            //指定openldap的Base DN(樹根,總數據庫啊什麼的),array裏的值必須與上面6中設置的suffix的值一致,否則phpldapadmin就無法連接上openldap,也就意味着phpldapadmin無法操作openldap(6個多小時才搞明白這一點,我暈死!)。
$servers->setValue('login','auth_type','session');                               //session是默認值,還可以設置成cookie,但那是另一套設置方案了
$servers->setValue('login','bind_id','cn=root,dc=gaso,dc=com');       //登陸的綁定id,我在這裏用了“大權在握者”來綁定,這樣的話網頁登陸對話框上就會直接顯示該管理者的賬號,直接輸入密碼就可以登錄了,也可以留空,留空的話下面的密碼也就必須留空了,那樣的話可以設置多個賬號,大家各登個的錄。
$servers->setValue('login','bind_pass','gaso123');                              //上面已經綁定了管理者賬號了,這裏就需要給出密碼,這個密碼可是之前ldappasswd命令設置生成的密碼,可不是在這裏指定什麼就是什麼密碼。

 

9.訪問phpldapadmin管理openldap

http://192.168.1.6/(安裝openldap服務的系統的ip,不要連別人的名字都抄到答卷上了哦)

沒意外的話就可以看到phpldapadmin的登錄頁面了(八成會有意外,第一次在所難免啊!)

10.關於ldap的一些理解

我們可以想象有一顆蘋果樹,樹枝就是樹幹的延伸。

發佈了23 篇原創文章 · 獲贊 2 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章