7.phpLdapAdminの実装
CentOS5にはphpLdapAdminのパッケージは用意されていないことは前述しました。まずは最新版のLinux用をここから入手します。
これをFTPでアップロードするわけですが、BlueOnyxのサイト管理でヴァーチャルサイトの管理ユーザーを作り、パス指定なしでFTP接続すると自動的にウェブのドキュメントルートである /home/sites/ドメイン/web ディレクトリに入ります。この辺がややこしいところで、SSHでターミナル接続をした場合にはヴァーチャルサイト・ディレクトリの users 配下のホームディレクトリに入りますが、FTPだと変わってしまいます。
実のところ、私の場合FTPは普段使用しておらず、WinSCP もしくは FileZila というSFTPが使用できるソフトでSFTP接続しているので気がつきませんでした。SFTPで接続するとターミナルと同様の動作になるからです。これに気がついたのがDreamWeaverでサイト設定をしているときでした。DreamWeaverの内蔵FTPでパス指定接続しようとするとエラーになってしまうのです。
試しに FileZilaでパス指定なしのFTP接続をしてみたら web ディレクトリだったのです。この辺は注意が必要ですね。
さて、ファイルをアップロードしたら展開するわけですが、このままウェブ公開ディレクトリ配下に置くのは危険です。別の任意の場所に展開しましょう。私の場合は /usr/local 配下に展開しました。シェルでログインしてrootになりアップロードしたディレクトリに移動して展開します。
>tar zxvf ./phpldapadmin-1.2.0.5.tgz -C /usr/local/
展開が終わったら元の圧縮ファイルはどこかにバックアップしておきましょう。
展開したディレクトリに移動し、ディレクトリ名を変更しておきます。
>cd /usr/local
>mv phpldapadmin-1.2.0.5 phpldapadmin
次に設定ファイルを作成しておきます。といっても特別な設定は必要ありません。
>cd phpldapadmin/config
>ls
config.php.example
設定ファイルの置き場所に入ると config.php.example というファイルがあります。このファイルを config.php と改名してコピーすれば終わりです。
>cp config.php.example config.php
次に phpldapadmin を展開した場所をウェブから見えるように設定してやる必要があります。
Apacheの追加設定ファイルの置き場所へ移動します。
>cd /etc/httpd/conf.d/
ここに次の内容のファイルを phpldapadmin.conf という名前で作成します。
#
#? Web-based tool for managing LDAP servers
#
Alias /phpldapadmin /usr/local/phpldapadmin/htdocs ←展開したパスに合わせる
Alias /ldaptools /usr/local/phpldapadmin/tools ←ここも同様
<Directory /usr/local/phpldapadmin/htdocs> ↓各ディレクトリの設定
Order Allow,Deny
Allow from all
DirectoryIndex index.php index.html
</Directory>
<Directory /usr/local/phpldapadmin/tools>
Order Allow,Deny
Allow from all
DirectoryIndex index.php index.html
</Directory>
エリアスの名前は適当な名前を付けて下さい。ブラウザからアクセスできてしまうのでオリジナルな名前にしたほうが良いかもしれません。.htaccess で認証制御すればなお良いでしょう。
ウェブサーバーに設定を再読込させます。
>service httpd reload
ブラウザで設定したエリアスにアクセスしてみて phpLdapAdmin のログインページが表示されれば成功です。もし、空白のページが表示されるようであれば、PHPの設定を確認してみましょう。サイト管理の設定で説明したとおり、phpLdapAdminの動作には最低30MBのメモリ割り当てが必要です。
ページが表示されてもエラーが出ていることがよくあります。ログインページで表示されるエラーはだいたいがログイン方式に関係したエラーです。
phpLdapAdminには session, cookie, http, config? 4つの接続方法が用意されています。バージョン1.2.0.5の場合デフォルトはセッションになっているのですが、セッション用一時ファイルの書き込みの失敗でエラーが出ることがあります。この場合、セッションファイルの置き場所である、 /var/lib/php/session のパーミッションを変更してみてください。
正常に表示されるようになったらログインしてみましょう。デフォルトのログイン形式は dn(ディレクトリネーム) 方式です。ログインユーザーのフルパスを入力します。
つまり、 cn=admin,dc=hogehoge,dc=com のような書き方になります。
ログインすると初期設定で入力したツリーがすでに出来ているはずです。
次にテスト用ユーザーのアカウントを登録したいのですが、追加してある postfix に対応したテンプレートが入っていません。テンプレートファイルはphpldapadmin 配下の templates ディレクトリに XML ファイルで入っています。templatesディレクトリには新規作成画面で出てくるテンプレートが置かれた creation ディレクトリと修正・更新用テンプレートの入った modification ディレクトリがあります。ここのファイルを元にpostfix用のテンプレートを作成することができます。
私のサイト用に作ったテンプレートをダウンロードにアップしてありますので、参考にしていただければ幸いです。
補足としてこのテンプレートで使用されるXMLのタグの意味について抜粋して解説しておきます。
タグ | 内容 |
<title></title> | 新規登録の際に表示されるテンプレートリストに表示される名前 |
<regexp></regexp> | テンプレートを表示させるスキーマ階層→正規表現で記述する |
<atributes></atributes> | 入力項目 id=スキーマオブジェクト名 |
<display></display> | 表示名 |
<order></order> | 表示順 |
<icon></icon> | 表示するアイコン |
<helper></helper> | ドロップダウンリストの表示 |
<default></default> | ドロップダウンリストの初期値 |
<location></location> | ドロップダウンリストの表示位置 |
その他、設定ファイルやテンプレートの詳しい使い方はphpldapadminのドキュメントをご覧になってください。特に設定ファイルについてはバージョンによって記述方法が異なりますので注意して下さい。