2006-02-10

SharePointのフォーラム機能に絶望して、今日はまったく別プロダクトで、ActiveDirectoryのユーザーDBを利用できるものを探してみました。

そういう機能はあまり無いものだろうと思っていたら、結構ldapサーバーとの連携機能をモジュールの形で誰かが作っている・・・ということがあって、びっくりしました。さすがOpenSourceの世界は広いですね。

さて、数あるプロダクトの中で今回まず試してみようと思ったのはphpBB|http://www.phpbb.com]]というフォーラムプロダクトです。理由はGoogle先生がそういったからです。phpBBには[[LDAP Auth MODというモジュールが存在しており、これを組み込めばADと連携できるそうです。

phpBB自体はApacheとPHPとMySQLで動かしてみました。以前構築したXoopsの環境があったので、そこにDB、ユーザーを追加してからブラウザからボタン一発でインストールできました。非常に簡単でよかったです。

ただ、日本語のランゲージパックをダウンロードして配置したら、なぜか管理画面が表示できなくなってしまいました。どうやら文字コードとか改行コードがらみの問題らしいです。提供されているものはShift_jisなので・・・。

構築してある環境はPHPをEUCできちんと動作するように設定してあるのですが、いちいちEUCに変換して回るのも面倒なので、すでに日本語化+EUC化されている物を探してみたらありました。なので、これを使わせていただきました。基本部分は完了。

そして、モジュールをダウンロードして、さて、インストーラーを・・・と思ったら、見当たらない。うーん?とおもって検索してみたら、モジュールの組み込みは手動での作業が推奨されているそうです・・・(涙)。指定されたファイルを開いて、特定の文字列を検索して、その後にインストール手順書から内容をコピー&ペースト・・・。延々1時間弱かかりました。これもまた、すごい文化だなぁ・・・。結構こういうものが多いのだろうか?信じられないけれども、本当の話なので・・・。こう見てみると、Xoopsのモジュールってのは非常に出来がいいですね。今回のモジュールが認証という根幹にかかわる部分だから・・・なのかもしれませんけれども。

さて、モジュールをインストールしたので、認証の変更・・・なのですがまずはLdapcheck.phpというプログラムで動作確認をします。値を入力して・・・。ボタンを・・・。

すると、「Connecting to LDAP Server… 」というところまで出たところで止まってしまいます。Webで検索してみたところ本来はこの後に接続が出来てチェックが進行するか、もしくは接続できなかった旨のエラーが出るはずなのですが・・・。

ソースを見てみたところ「ldap_connect」という関数を呼び出したところで結果が返ってきていない模様でした。うーん、これが原因ですね・・・。

以下のような非常に単純なスクリプトをコマンドラインから実行してみると・・・。


$server='172.16.1.4';
echo "start of ldap_connect";
$ds=ldap_connect($server);
echo "end of ldap_connect";
?>

以下のようにエラーを吐いてました。

C:\php>php "C:\Program Files\Apache Group\Apache2\htdocs\forum\test.php"
PHP Fatal error:  Call to undefined function ldap_connect() in C:\Program Files\
Apache Group\Apache2\htdocs\forum\test.php on line 8
start of ldap_connect

Google先生に聞いてみると、Ldap関連の関数はコンパイル時に指定するものだそうで・・・。phpinfoを見てみてもLDAPの文字列は見つからないので、きっとこのバイナリでは駄目なんですね・・・。というわけで、LDAPが使えるPHPのバイナリを探すことにしました。

・・・が、見つかりませんでした。うーん?

しかし、それは私の勘違い・・・というかPHP4のころの話なのかもしれません。PHP5.0.1が動いているのですが、普通にphp.iniに

extension=php_ldap.dll

という記述があり、コメントアウトを外してあげたら無事に動作するようになりました。はでに勘違いをして、かなり無駄に時間を使いました・・・。

これで、コマンドラインからの実行はOKになりました。しかし、Webブラウザから実行するとやはり同じところで処理が止まってしまっているようです。・・・・Apacheの再起動が必要でした・・・(弱)。

これで、やっとLDAPcheck.phpがうまく通るようになりました。

phpbbにて管理画面からGeneral Admin→Configuration→Authentication Settingsにて各種設定を実施。

これできちんとADのユーザー名とパスワードでphpbbにログオンすることが出来ました!!ちょっと感動です。

「2006-02-10」への2件のフィードバック

  1. Советую действительно интересный сайт:
    [URL=http://davai-znakomitsa.ru/znakomstva-2-v1.html]знакомства 2 в1[/URL]
    Величина посылаемой Вами фотографии на сайте будет порядка 2 на 3 см, поэтому качество начальной фотографии играет существенную роль, а грамотно определяемый свет, экспозиция определяют чистоту цветов.

    返信

コメントを残す