您好,登錄后才能下訂單哦!
LINUX下安裝openldap,并用phpldapadmin進行管理
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的openldap需要的bdb版本應該為4.4-4.6之間,所以這里就選擇了4.5的bdb。(裝64位系統的時候,4.5的卻不兼容,換成4.3.29的,)
關閉selinux&iptable
vi/etc/sysconfig/selinux
把SELINUX=enforcing disabled
iptables –F
rpm -q make
yum install make
rpm -q gcc
yum install gcc
rpm -qgcc-c++
yum installgcc-c++
cd libxml2-2.6.30
./configure--prefix=/usr/local/libxml2/
make
make install
cd../libmcrypt-2.5.8
./configure--prefix=/usr/local/libmcrypt/
make
make install
cd ../libmcrypt-2.5.8/libltdl/
./configure--enable-ltdl-install
make
make install
cd../../zlib-1.2.3
./configure
make
make install
cd../libpng-1.2.31
./configure--prefix=/usr/local/libpng/
make
make install
cd ../jpeg-6b
mkdir/usr/local/jpeg6
mkdir /usr/local/jpeg6/bin
mkdir/usr/local/jpeg6/lib
mkdir/usr/local/jpeg6/include
mkdir -p/usr/local/jpeg6/man/man1
./configure--prefix=/usr/local/jpeg6/ --enable-shared --enable-static
make
make install
cd../freetype-2.3.5
./configure--prefix=/usr/local/freetype/
make
make install
cd../autoconf-2.61
./configure
make
make install
cd ../gd-2.0.35
./configure--prefix=/usr/local/gd2/ --with-jpeg=/usr/local/jpeg6/--with-freetype=/usr/local/freetype/
make
make install
cd ../ncurses-5.6
./configure--with-shared --without-debug --with-ada --enable-overwrite
make
make install
1.安裝apache
cd ../httpd-2.2.9
./configure--prefix=/usr/local/apache2/ --sysconfdir=/etc/httpd/ --with-included-apr--disable-userdir --enable-so --enable-deflate=shared --enable-expires=shared--enable-rewrite=shared --enable-static-support
make
make install
2.安裝php
cd ../php-5.2.6
./configure--prefix=/usr/local/php/ --with-config-file-path=/usr/local/php/etc/--with-apxs2=/usr/local/apache2/bin/apxs --with-libxml-dir=/usr/local/libxml2/ --with-jpeg-dir=/usr/local/jpeg6/--with-freetype-dir=/usr/local/freetype/ --with-gd=/usr/local/gd2/--with-mcrypt=/usr/local/libmcrypt/ --enable-soap --enable-mbstring=all--enable-sockets --with-ldap --with-gettext
#yum installlibtool
#yum install libtool-ltdl
make
make install
cp php.ini-dist/usr/local/php/etc/php.ini
vi/etc/httpd/httpd.conf
AddTypeapplication/x-httpd-php .php .phtml(添加)
/usr/local/apache2/bin/apachectlrestart
保存退出。
3.安裝bdb
tar zcvfdb-4.5.20.tar.gz
cd db-4.5.20/build_unix//在這個目錄里編譯(不同于其它大多數linux程序)
../dist/configure--prefix=/usr/local/db
make
make install
vi /etc/ld.so.conf
/usr/local/db/lib
/sbin/ldconfig
4.安裝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 //讓剛設置的變量立刻生效
envCPPFLAGS="-I /usr/local/db/include" LDFLAGS="-L/usr/local/db/lib"
記得要啟用bdb,要不我們的bdb就白裝了。
./configure--prefix=/usr/local/openldap --enable-bdb
//CPP和LD這兩個環境變量應該可以跟剛才的LD_LIBRARY那個變量一樣設置在profile文件里的,但是大家都是在這里設置,可能是因為這兩個變量都是只在安裝時用一次吧,所以我這里也就隨大家寫在命令里而不是寫在profile里了,(裝64位系統的時候又報錯缺少ltdl.h,后來locateltdl找到了它的位置,然后命令改成了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,)(試過多種方法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
5.修改openldap配置文件
vi/usr/local/openldap/etc/openldap/slapd.conf
include /usr/local/openldap/etc/openldap/schema/core.schema
這些schema都在openldap安裝目錄下的etc/openldap/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=davy,dc=org"
//suffix(后綴),以后所有的ldap數據記錄都將放在它的下面,你可以把它看成是數據庫的總庫,之后的phpldapadmin中也需要指定它并且要跟這里的設置一致
rootdn "cn=root,dc=davy,dc=org"
//openldap的管理者(就跟系統的管理員類似,openldap的“大權在握者”)
rootpw {SSHA}rWWrzQ60N42lNONcZFaKovPrgWSjn5/Z
//管理者密碼,該密碼串需要通過ldappasswd命令(openldap安裝目錄下的bin目錄里)來生成
directory /usr/local/openldap/var/lib/openldap
//指定openldap數據庫的存放目錄
保存退出
/usr/local/openldap/bin/ldappasswd //生成管理者密碼
/usr/local/openldap/libexec/slapd //啟動openldap
(解決alock package isunstable)
chown ldap:ldap/usr/local/openldap/var/lib/openldap/*
(解決No DB_CONFIG file)
cp/etc/openldap/DB_CONFIG.example /usr/local/openldap/var/lib/openldap/DB_CONFIG
chown ldap:ldap/usr/local/openldap/var/lib/openldap/DB_CONFIG
chmod 600 /usr/local/openldap/var/lib/openldap/*
6.安裝phpldapadmin
tar -zxvfphpldapadmin-1.2.0.5.tgz
cp –R phpldapadmin-1.2.0.5 /usr/local/apache2/htdocs/phpldapadmin
7.修改phpldapadmin配置文件
cp/usr/local/apache2/htdocs/phpldapadmin/config/config.{php.example,php}
vi/usr/local/apache2/htdocs/phpldapadmin/config/config.php
$servers->setValue('server','name','DAVYLDAP Server');
//本行及后面這些行(讀hang)為關鍵參數,可按實際情況修改,此處指定服務器的顯示名稱為DAVY LDAP Server,該名稱可隨意設置
$servers->setValue('server','host','127.0.0.1'); //指定openldap服務器就是本機
$servers->setValue('server','port',389); //指定openldap服務使用的端口為389
$servers->setValue('server','base',array('dc=davy,dc=org'));
//指定openldap的Base DN,array里的值必須與上面5中設置的suffix的值一致,否則phpldapadmin就無法連接上openldap,也就意味著phpldapadmin無法操作openldap。
$servers->setValue('login','auth_type','session'); //session是默認值,還可以cookie
$servers->setValue('login','bind_id','cn=root,dc=davy,dc=org');
//登陸的綁定id,我在這里用了“大權在握者”來綁定,這樣的話網頁登陸對話框上就會直接顯示該管理者的賬號,直接輸入密碼就可以登錄了,也可以留空,留空的話下面的密碼也就必須留空了,那樣的話可以設置多個賬號,大家各登個的錄。
$servers->setValue('login','bind_pass','davidlee'); //上面已經綁定了管理者賬號了,這里就需要給出密碼,這個密碼可是之前ldappasswd命令設置生成的密碼,可不是在這里指定什么就是什么密碼。
8.訪問phpldapadmin管理openldap
http://192.168.88.141/沒意外的話就可以看到phpldapadmin的登錄頁面了。
9.關于ldap的一些理解
我們可以想象有一顆蘋果樹,樹枝就是樹干的延伸。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。