phpPgAdmin
phpPgAdmin とは,PostgreSQL データベースの操作を Web ブラウザから効率的に実行できる管理ツールである.
- データベース・一般ユーザのアカウント(ユーザ名とパスワード)の作成(SQLではなく,グラフィカル・ユーザ・インタフェースを使用),
- データベースの作成と権限の設定(SQLではなく,グラフィカル・ユーザ・インタフェースを使用),
- テーブル定義の管理(SQLではなく,グラフィカル・ユーザ・インタフェースを使用),
- SQLクエリの編集と実行,
- テーブルの一覧表示,データの閲覧,更新(行の追加,削除,値の更新),
- テーブルデータのエクスポートなど
本ページでは,phpPgAdmin のインストール方法と具体的な使用方法について解説する.
事前準備事項
phpPgAdmin を使用するために,以下のユーザ名(Role Name),パスワード,テストデータベース名を事前に決定する必要がある. これらは半角文字で設定し,スペースを含まないようにする. 本資料では,以下の値を使用する.
- phpPgAdmin 実行用のユーザ名 (Role Name) とパスワード
- ユーザ名: testuser
- パスワード: hoge$#34hoge5
セキュリティ上の理由から,phpPgAdmin はデータベース管理者ではなく, 専用のユーザアカウント (Role) を作成して実行する.
- データベース名: testdb
これは,phpPgAdmin のテスト実行用に作成するデータベースの名称である.識別しやすい名前を設定することを推奨する.
準備事項
以下の設定が必要となるため,事前に確認する.
- PostgreSQL データベース管理者のユーザ名とパスワード
PostgreSQL の管理者は,データベースに対するすべての操作権限を持つユーザである. インストール時に設定した値を確認する. 本資料では,PostgreSQL データベース管理者のユーザ名を pgadmin, パスワードを pgadminpass として説明する.
phpPgAdmin のインストール手順(Windows 環境)
PHP のインストール
PHP のインストールガイド に従って, PHP のインストールを実施する.主要な手順は以下の通りである.
- ダウンロード
http://www.php.net/downloads.php から,Windows 版(PHP 5.2.6 installer)をダウンロードする
- インストール
インストーラを実行し,以下の設定を行う
- Web Server Setup において Apache 2.2.x Module を選択(Apache 2.2系がインストール済みの場合)
または,Web Server Setup で Apache 2.0.x Module を選択(Apache 2.0系がインストール済みの場合)
- Apache Configuration Directory に Apache の conf ディレクトリパス(C:\Program Files\Apache Group\Apache2\conf\)を指定
- Extensions から「Postgres」「Multi-Byte String」など必要なモジュールを選択し,Will be installed on local hard drive に設定する (設定は後から変更可能なため,必要に応じて調整可能).
- Web Server Setup において Apache 2.2.x Module を選択(Apache 2.2系がインストール済みの場合)
- インストール確認
C:\Program Files\Apache Group\Apache2\htdocs に以下の内容の test.php を作成する
<?php phpinfo();?>
http://localhost/test.php にアクセスし,PHP情報ページが正常に表示されることを確認する
参考URL:http://mizushima.ne.jp/Windows/DB/phpPgAdmin/phpPgAdmin.php を参考に作成(現在は非公開).
Apache の設定
http://localhost/phpPgAdmin へのアクセス時に index.php を表示するよう設定を変更する
- 前提条件 Tomcat のインストールとテスト実行 および Apache HTTP サーバと Apache Tomcat コネクタ の設定が完了していること
-
C:\Program Files\Apache Group\Apache2\conf の httpd.conf をテキストエディタで開き,以下の行を変更する
【変更前】DirectoryIndex index.html index.html.var 【変更後】DirectoryIndex index.html index.php
phpPgAdmin のインストール手順
- ダウンロード http://phppgadmin.sourceforge.net/?page=download から phpPgAdmin-4.2.1.zip を入手
- インストール
phpPgAdmin-4.2.1.zip を展開し,フォルダ名を phpPgAdmin に変更する. phpPgAdmin フォルダを htdocs(C:\Program Files\Apache Group\Apache2\htdocs)にコピーする
- 設定ファイルの修正
PostgreSQL で作成したユーザ(postgres)でログインできるよう,phpPgAdmin\conf\config.inc.php を以下のように修正する
【修正前】$conf['extra_login_security'] = true; 【修正後】$conf['extra_login_security'] = false;
- インストール確認
http://localhost/phpPgAdmin にアクセスし,「phpPDAdmin4.2.1(PHP5.2.6)」を含む画面が表示されることを確認する
phpPgAdmin のインストール手順(Linux 環境)
インストール
PHP が事前にインストールされていることを確認すること
http://sourceforge.net/projects/phppgadmin
cd /tmp wget https://www.kkaneko.jp/computer/src/toollib/phpPgAdmin-4.2.1.tar.gz cd /usr/local/apache2 tar -xvzof /tmp/phpPgAdmin-4.2.1.tar.gz
設定手順
- 設定ファイルの編集
conf/config.inc.php において,以下の項目を確認・設定する: host,defaultdb,default_lang,pg_dump_path,pg_dumpall_path, extra_login_security,owned_only など
cd /usr/local/apache2/phpPgAdmin-4.2.1 vi conf/config.inc.php $conf['default_lang'] = 'japanese';
- Apache の設定ファイル httpd.conf に以下を追加
vi /usr/local/apache2/conf/httpd.conf --- Alias /pgadmin/ "/usr/local/apache2/phpPgAdmin-4.2.1/" --- <Directory "/usr/local/apache2/phpPgAdmin-4.2.1"> AllowOverride All Options ExecCGI Order allow,deny Allow from all </Directory> ---
- PostgreSQL の設定ファイル postgresql.conf の編集
vi /usr/local/pgsql/de/postgresql.conf ---- stats_start_collector = true stats_command_string = true stats_block_level = true stats_row_level = true ----
- (オプション)アクセス制御の設定
phpPgAdmin へのアクセスを制限するため,.htaccess にユーザ認証を設定する
- ユーザ名: testuser
- パスワード: hoge$#34hoge5
以下のコマンドで設定を行う
# 既存のユーザが存在する場合は -c オプションを省略 /usr/local/apache2/bin/htpasswd -b -c /usr/local/apache2/conf/.htpasswd testuser hoge$#34hoge5 cat /usr/local/apache2/conf/.htpasswd vi /usr/local/apache2/testuser-4.2.1/.htaccess ---- AuthGroupFile /dev/null AuthName "testuser (PostgreSQL) Page" AuthType Basic require valid-user ----
phpPgAdmin の主要機能
phpPgAdmin は以下の機能を提供する.
- データベース・一般ユーザのアカウント(ユーザ名とパスワード)の作成(グラフィカル・ユーザ・インタフェースによる管理),
- データベースの作成と権限の設定(グラフィカル・ユーザ・インタフェースによる管理),
- テーブル定義の管理(グラフィカル・ユーザ・インタフェースによる管理),
- SQL クエリの編集と実行,
- テーブルの一覧表示,データの閲覧と更新(行の追加,削除,値の更新),
- テーブルデータのエクスポートなど
新規ユーザの作成手順
- http://localhost/phpPgAdmin/ にアクセス
- データベースへの接続
左メニューの "PostgreSQL" をクリックし, データベース管理者のユーザ名とパスワードを入力してログインする
- "Roles" をクリック
- "Create role" をクリック(新規ユーザアカウントの作成)
- 必要な情報を入力
Can login? オプションにチェック Rolename: testuser(ユーザ名) パスワード: hoge$#34hoge5
- 左メニューの "サーバー" をクリックしてログアウト
注意:ブラウザの戻るボタンでログイン画面に戻ると,作成した「testuser」でログインできなくなる場合があるため注意が必要である.
アクセス権限の設定
psql コマンドによる設定方法
psql コマンドを使用して, testuser に対する testdb データベースへのアクセス権限を設定する.
su - postgres pg_ctl -D /usr/local/pgsql/data -l /usr/local/pgsql/logfile -o "-i" start psql -U pgadmin testdb create user "testuser" with password 'hoge$#34hoge5' nocreatedb nocreateuser; \q pg_ctl stop
テーブル(例:commodity)への権限を付与する.
grant select rule references trigger on table commodity to testuser;
参考資料: http://www.kids-clinic.jp/uni/phppgadmin.html の内容を参考に作成.
テーブル定義の管理
専用のグラフィカルツールを使用してテーブル定義が可能である. ただし,SQL を直接使用する方が効率的な場合が多い.
- "テーブル" をクリック
- "テーブルを作成する" をクリック
- テーブル名とカラム数を入力
- "次に" をクリック
- カラム名と長さを設定
- データ型を選択
- 必要に応じて追加オプションを設定
- "作成" をクリック
SQL クエリの編集と実行
SQL クエリを効率的に実行できる機能を提供する.
- phpPgAdmin に,ユーザ名 testuser とパスワード hoge$#34hoge5 でログイン
- 左メニューの "postgres" をクリック
- 中央の "SQL" をクリック
- SQL クエリを入力して実行
クエリの実行は「実行」ボタンをクリックする
SQL の実行例
create table commodity ( id integer primary key not null, name varchar(32) not null, price integer ); insert into commodity values( 1, 'apple', 50 ); insert into commodity values( 2, 'orange', 20 ); insert into commodity values( 3, 'strawberry', 100 ); insert into commodity values( 4, 'watermelon', 150 ); insert into commodity values( 5, 'melon', 200 ); insert into commodity values( 6, 'banana', 100 ); select * from commodity;
実行結果の例:
TYPE NAME PRICE ---- ---------- ----- 1 apple 50 2 orange 20 3 strawberry 100 4 watermelon 150 5 melon 200 6 banana 100
テーブルデータの管理(閲覧,追加,削除,更新)
テーブルデータの閲覧や編集を直感的に行うことができる.データの追加は以下の手順で実行する. phpPgAdmin で,
- "テーブル" をクリック
- 対象テーブルの "挿入" をクリック
- データを入力
- "挿入" をクリックして確定
テーブルデータのエクスポート
テーブルデータを CSV 形式でエクスポートする機能を提供する.
対象テーブル名を右クリックし, 「CSV ファイルの出力」を選択してエクスポートを実行する.