phpPgAdminの導入

ムラチャン

2006年05月27日 11:12

postgreSQLの管理ツールとして psql コマンドがありますが、
GUIツールとしては pgAdmin3 とphpPgAdmin があります。
phpPgAdminは、phpで書かれていて webブラウザで動作します。
今回は、これを vine Linux3.2 web+DBサーバー上にインストールしてみます。

ダウンロードはここから。
http://phppgadmin.sourceforge.net/

tarファイルを適当なディレクトリの下に展開します。
tar jxvf /tmp/phpPgAdmin-4.0.1.tar.bz2

展開されたファイルは、ブラウザで見れるように DocumentRootや
UserDirの下に移動します。phpスクリプトなので make等は不要です。

次に設定をします。展開された conf/ の下の config.inc.php をエディタで編集します。
$conf['default_lang'] = 'japanese';
で、日本語を設定します。

これで、ブラウザから phpPgAdmin/index.php のURLを指定すると起動画面が現れ、
DBにログインして、操作することができます。

ところが、DBスーパーユーザの postgres でログインしようとすると失敗します。
これは、phpPgAdminが、pgsql, postgres, root, administratorでログインを拒否
するようになっているためのようです。運用時にはセキュアですが、
開発時には不便なので、config.inc.php の設定を変更します。
$conf['extra_login_security'] = false;

これで、postgresユーザーからログインできるようになりました。

------
次は、クライアント上にインストールして、リモートでDB操作できるように
してみます。
クライアント linux 上に同様にphpPgAdminをインストールして、
config.inc.php にリモートサーバーの設定をします。

$conf['servers'][1]['desc'] = 'postgreSQL server on vine';
$conf['servers'][1]['host'] = '192.168.1.xxx';
$conf['servers'][1]['port'] = 5432;
$conf['servers'][1]['defaultdb'] = 'template1';
$conf['servers'][1]['pg_dump_path'] = '/usr/bin/pg_dump';
$conf['servers'][1]['pg_dumpall_path'] = '/usr/bin/pg_dumpall';
$conf['servers'][1]['slony_support'] = false;
$conf['servers'][1]['slony_sql'] = '/usr/share/pgsql';

そして、サーバー側で postgresql.conf に、
tcpip_socket = true

pg_hba.conf で、LANからの接続を許可します。
host all all 192.168.1.0 255.255.255.0 true

設定を変更したので、postgreSQLを再起動
# /etc/rc.d/init.d/postgresql restart
これで、クライアントから接続するDBサーバーを選択できます。

参考:
http://itpro.nikkeibp.co.jp/members/SI/oss/20031017/1/
http://fumika.jp/nikki/2004/05/phppgadmin