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://[アドレス]/phppgadmin でphpPgAdminにアクセスできるように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ネタ続きます。