2006年05月27日

phpPgAdminの導入

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



Posted by ムラチャン at 11:12│Comments(0)
この記事へのトラックバック
げげっ!!

「PostgreSQL 7.x/8.x」にセキュリティ・ホール!!

不正なSQL文を送り込まれる「SQLインジェクション」攻撃を許して,

データベース内の情報を操作される恐れなどがある。
...
「PostgreSQL」にセキュリティ・ホール【SkyyBlue】at 2006年05月28日 11:34
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。