Hatena::ブログ(Diary)

ubuntu日記 このページをアンテナに追加 RSSフィード

2009-04-09

[][]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/

<DirectoryMatch /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

<IfModule mod_php4.c>
  php_flag magic_quotes_gpc Off
  php_flag track_vars On
  php_flag register_globals On
  php_value include_path .
</IfModule>

<IfModule mod_php5.c>
  php_flag magic_quotes_gpc Off
  php_flag track_vars On
  php_flag register_globals On
  php_value include_path .
</IfModule>
</DirectoryMatch>

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