参考サイト:http://safe-linux.homeip.net/web/PostgreSQL/03-phpPgAdmin.html



1.yumでpostgreをインストールした場合の状態


  postgresスーパーユーザー(linxu上のユーザー):postgres

  デフォルトデータベース:template0

  データベース格納先:/var/lib/pgsql/data


2.postgresユーザーの存在を確める

  id postgres   #postgresユーザーの存在確認 uid gid 所属グループがわかる

  finger postgres   #postgresのユーザー情報確認 ログイン名、ホームディレクトリ、ログインシェルなど


3.phpPgAdminの動作に必要なソフトの確認

  3.1 postgresのインストール確認

    rpm -qa | grep postgres

    psql --version


  3.2 pgsql-phpのインストール確認

    rpm -qa | grep php-pgsql

    (インストールされていない場合は yum install php-pgsqlでインストール)


4.PostgreSQL内で管理されているスーパーユーザーpostgres(2のものとは別)に

  パスワードを設定する


5.Postgresへのローカルホストからの接続をすべて許可する

   vi /var/lib/pgsql/data/pg_hba.conf   #postgresの設定ファイルを開く

   ==vi モード====

  :$ #ページの最終行へ

  #host all all 127.0.0.1/32 ident sameuser #ipV4用の設定をコメントアウト

  host all all 127.0.0.1 255.255.255.255 trust #ローカルホストからの接続を許可する設定を追記。phpPgAdminからの接続は、同じサーバーのphpからのアクセスとなるので内部アクセスとなる。よってpostgresのポートを外部に公開する必要も無い。

  ==viモード終了===

  /etc/init.d/postgresql -restart    #postgresの再起動


6.postgreSQL内で管理されるpostgres以外のスーパーユーザーを作成する

  su postgres   #LinuxのpostgreSQL操作ユーザーpostgresに切り替える

  createuser -P #パスワード尽きでユーザー作成

  Enter name of role to add:   #ユーザーを入力

  Enter password for new role: #パスワードを入力

  Enter it again: #パスワードを再入力

  Shall the new role be a superuser? (y/n) y #作成するユーザーにスーパーユーザーの権限を与えるの”y”を入力


7.phpPgAdminをインストール

  http://phppgadmin.sourceforge.net/?page=download

からダウンロードしてきたフォルダ名をphpPgAdminに変更してドキュメントルートに設置


8.phpPgAdminの設定

  /confの”config.inc.php”を編集

  8.1 接続ホストの設定

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

          ↓

    $conf['servers'][0]['host'] = 'localhost'   #localhostからの接続を許可する


  8.2 rootやpostgresユーザーからの接続拒否設定を確認する

    $conf['extra_login_security'] = true;


  8.3 所有者以外のデータベースを拒否する

    $conf['owned_only'] = false;

          ↓

    $conf['owned_only'] = true;

9.インターネット経由でのphpPgAdminへのアクセスをhtaccessで制限する

 9.1 IPアドレスの制限

 9.2 Basic認証の制限



/var/lib/pgsql/data/pg_hba.conf