.
WEB/DB 関連 =>PostgreSQL-Server>2.phpPgAdmin セットアップ
Linux 活用ガイド:目次

サーバ構築ガイド

レンタル ガイド

ショップ 構築ガイド

情報漏洩対策

phpPgAdmin の導入とセットアップ ~ CentOS-4.5

phpPgAdmin はブラウザ経由で PostgreSQL サーバを操作可能なPHP で書かれたブラウザ上で動作するプログラムです。MySQL で言うところのphpMyAdminに相当します。

phpPgAdmin

SSH など psql コマンド操作を提供しない環境においては、phpPgAdmin などのツールをインターフェイスとしてユーザーに提供する必要があります。

セキュリティに関して

phpPgAdmin (WEBサーバ)と PostgreSQL サーバが同一ホストでPostgreSQL が自ホストの接続に限定している場合、Webサーバを経由して操作するため Webサーバに接続可能なホスト全てが接続出来てしまうことになります。

そのため、PostgreSQL の認証方式や phpPgAdmin を設置するWebサーバの公開ディレクトリに対しては厳格なセキュリティ対策が求められます。認証無しで postgres (スーパーユーザ)に接続できる状態は大変危険です。

MySQL をブラウザ経由で操作する phpMyAdmin の場合、phpMyAdmin 側でブラウザ認証に関する機能が幾つか用意されていますが、phpPgAdmin にはこれらの機能は現在の所、提供されておらず特に注意が必要です。

phpPgAdmin のセットアップ

phpPgAdmin を設置したディレクトリを Webサーバで公開する事になります。ここでは CentOS-4.5 / Apache 2 / PHP4.3 において説明しています。

事前に必要なもの

PostgreSQL を PHP で操作するには 以下のPHPモジュール (php-pgsql) が必要です。 CentOS 4.5 ではパッケージが提供されておりインストールするだけで利用可能な状態になります。

# rpm -qa|grep php-pgsql

でインストールされていなければ先にインストールしておきます。

# yum install php-pgsql

phpPgAdmin の入手先

以下からソースをダウンロードします。
http://phppgadmin.sourceforge.net/?page=download

phpPgAdmin の設置

PHP 動作可能な WEBサーバーでディレクトリを公開する事になります。ここでは、 /var/www/phpPgAdmin に設置するとして話を進めます。適宜パスは置き換えてください。 また、いきなりWEB公開中のディレクトリに設置するような事は控えてください。

# tar zxvf phpPgAdmin-4.1.3-rc-1.tar.gz
# mv phpPgAdmin-4.1.3-rc-1 /var/www/phpPgAdmin

Webサーバ Apache の実行ユーザーに権限を変更します。 CentOS のデフォルトは ユーザ apache グループ apache になります。

# chown -R apache.apache /var/www/phpPgAdmin

phpPgAdmin の設定 .

上記ディレクトリ /var/www/phpPgAdmin を Webサーバで公開することになりますが、 その前に phpPgAdmin の設定を行ないます。 phpPgAdmin の設定は、phpPgAdmin/conf/config-inc.php で行ないます。

/var/www/phpPgAdmin/conf/config-inc.php

修正箇所
18行目
$conf['servers'][0]['host'] = '';

$conf['servers'][0]['host'] = 'localhost';

PostgreSQL サーバを指定します。同一ホストであれば localhost です。

71行目
root や postgres といった一般的なユーザー名でのログインを禁止します。パスワードが正しくてもログインする事は出来ません。セキュリティ上、この設定は解除すべきではありません。※

$conf['extra_login_security'] = true;

78行目
所有者以外のデータベースは非表示にします。
$conf['owned_only'] = false;

$conf['owned_only'] = true;

$conf['extra_login_security'] = false; .

とした場合、スーパーユーザー postgres をはじめ root などの一般的な Unix アカウントの利用を許可することになります。

もし、ユーザー管理のために phpPgAdmin を管理者が利用したいのであれば、phpPgAdmin のセキュリティを緩めるのではなく専用の PostgreSQL ユーザーを追加すべきです。例えば以下のようにします。

$ su postgres
$ createuser -P
Enter name of user to add: posposmaster
Enter password for new user: パスワードを設定します。
Enter it again: 入力したパスワードの確認です。
Shall the new user be allowed to create databases? (y/n) y
データベース作成特権を与えるかどうかです。
Shall the new user be allowed to create more new users? (y/n) y
スーパーユーザー特権(ユーザー追加)を許可するかどうかです。
CREATE USER

phpPgAdmin を利用して管理者がユーザー/データベース管理を行う場合は、ここで追加した posposmaster を使用する事にします。

以上で phpPgAdmin のインストールと初期設定は終わりです。次は phpPgAdmin の公開設定を行ないます。使用している WEB サーバーは Apache 2 です。

bottom_mark
ページ最上部
ページ最上部 前のページ