LDAPによる認証 - (2009/04/09 (木) 17:24:52) の編集履歴(バックアップ)
現在製作しているシステムの認証にADを利用しようと思い立ち、PHPでLDAPを利用して実装しました。
PHPの設定変更(win版:テスト環境、自分のPC)
- php.iniのexstensionのコメントをはず
- ssleay32.dllとlibeay32.dllがapacheから参照できることが前提 win版はすんなりと設定できましたVersion 5.2.6
PHPの設定変更(linux版:本番環境、サーバー)
本番環境はソースからコンパイルしているため、PHPを再コンパイルする必要がありました。
流れとしては
- Berkeley DB を導入
- OpenLDAP 2.4.11-Releaseの導入
- phpの再コンパイル
Berkeley DB の導入
$ tar zxvf db-4.7.25.NC.tar.gz $ cd db-4.7.25/build_unix/ $ ../dist/configure $ make $ make instrall $ chown -R root:wheel /usr/local/BerkeleyDB.4.7
OpenLDAP 2.4.16の導入
openldap-stable-20080813.tgzをダウンロード
$./configure 途中略 checking for db.h... yes checking for Berkeley DB major version... 4 checking for Berkeley DB minor version... 1 checking for Berkeley DB link (-ldb-4)... no checking for Berkeley DB link (-ldb4)... no checking for Berkeley DB link (-ldb)... yes checking for Berkeley DB version match... yes checking for Berkeley DB thread support... yes checking Berkeley DB version for BDB/HDB backends... no configure: error: BDB/HDB: BerkeleyDB version incompatible
Berkeley DB のバージョンが違う?
実は最初は何も考えずにOpenLDAPから作業を開始しました。
そうしたら、もともと4.1がインストールされていたみたいです。
そこで、最新のBerkeley DB4.7をインストールしましたが、うまく行かない。
色々ググってみると、バージョンは4.2がいいみたい。
-
OpenLDAPとBerkeley DBのバージョンの組み合わせ
OpenLDAP Berkeley DB 4.1 4.2 4.6 4.7 2.3.43 incompatible ○ × × 2.4.11 incompatible ○ × × 2.4.16 incompatible × × ×
最終的な手順
- Berkeley DB4.2の導入
- OpenLDAP 2.4.11の導入
$ vi /etc/ld.so.conf
でBerkeley DB4.2のライブラリーを追加
$ ldconfig
で変更を適用
$ cd OpenLDAP2.4.11 $ CPPFLAGS=-I/usr/local/BerkeleyDB.4.2/include LDFLAGS=-L/usr/local/BerkeleyDB.4.2/lib ./configure $ make $ make test $ make install
でやっと導入できました。
PHPの再コンパイル
./configure --with-mysql=/usr/local/mysql --with-apxs=/www/bin/apxs --with-gd --with-jpeg-dir=/usr/local/lib --with-zlib-dir=/usr/local/lib --enable-mbstring --with-ldap=/usr/local