phpPgAdminのインストールと設定

Ubuntu Server 8.04でPostgreSQLを使う。


すいませんPostgreSQL自体のインストールはログを取っていなかったので他のサイトを参照してください。

ちなみにUbuntu ServerではtaskselコマンドでPostgreSQLその他のサーバのインストールが簡単にできます。

$ sudo tasksel

ここではPostgreSQL 8.3がインストールされています。


さて、phpPgAdminです。
Ubuntuのパッケージでもありますが、バージョンが古いとSERIAL型(オートナンバー)を使うときに以下のようなエラーが出る場合があります。

Notice: Undefined index: length in /usr/share/phppgadmin/tblproperties.php on line 491
SQL エラー:

ERROR:  type "serial" does not exist

文:
ALTER TABLE "TestTable01" ALTER COLUMN "ID" TYPE SERIAL


これは最新版(2009年4月9日現在バージョン4.2.2)で直っているバグです。最新版は以下から入手可。
http://phppgadmin.sourceforge.net/


インストールはアーカイブを展開するだけです。

$ tar zxfv phpPgAdmin-4.2.2.tar.gz


これをたとえば/usr/shareの下にコピーします。

$ sudo cp -r phpPgAdmin-4.2.2 /usr/share/phppgadmin


http://[アドレス]/phppgadminphpPgAdminにアクセスできるようにApache2を設定します。
/etc/phppgadmin/apache.confを以下の内容で作ります。

Alias /phppgadmin /usr/share/phppgadmin/


DirectoryIndex index.php
Options +FollowSymLinks
AllowOverride None

order deny,allow
deny from all
allow from 127.0.0.0/255.0.0.0
allow from 192.168.1.0/255.255.255.0 # phpPgAdminにアクセスするネットワーク
# allow from all


  php_flag magic_quotes_gpc Off
  php_flag track_vars On
  php_flag register_globals On
  php_value include_path .



  php_flag magic_quotes_gpc Off
  php_flag track_vars On
  php_flag register_globals On
  php_value include_path .


conf.dにリンクします。

sudo ln -s /etc/phppgadmin/apache.conf /etc/apache2/conf.d/apache.conf


Apache再起動。

$ sudo /etc/init.d/apache2 restart


PostgreSQLの設定。
ローカルからWeb経由でアクセスするため、/etc/postgresql/8.3/main/pg_hda.confの以下の文をコメントアウト

local   all         all                               ident sameuser

さらに以下の文を追加。

local   all         all                               trust


PostgreSQL再起動。

sudo /etc/init.d/postgresql-8.3 restart

ここで注意。サービスを提供するアドレスはpostgresql.confで定義できますが、ここをIPアドレス直打ちするとローカルホストのポートが開かず、phpPgAdminがアクセスできません。
デフォルトではローカルホストのポートのみを開ける設定になっていますが、外部からの接続が必要な場合にはIPアドレスを入力するのではなく、'*'と入力しましょう。
これに気づくまでに2時間ほど費やしたのは内緒の方向で。Apacheアクセスログ見てやっと気づいた。

listen_addresses = '*'

pg_hda.confを正しく設定しても「ログインに失敗しました」「Login failed」のエラーが出る場合にはここを確認するのがいいかも。


これでhttp://[アドレス]/phppgadminからログインできるはず。
しばらくSQLネタ続きます。


参考:phpPgAdminをインストールしてみる ubuntu Apache