Fedora 9にウェブDB用にPostgreSQLをインストールする。
現時点の最新パッケージはpostgresql-server-8.3.3-1.fc9ですが、
これをyumでインストールすると最低限必要なpostgresqlとpostgresql-libsが
一緒にインストールされる。
# yum install postgresql-server
そしてphp言語でpostgresqlデータベースを利用するために以下のパッケージもインストール。
# yum install php-pgsql
ただしこれだけだとhttpd+phpの環境からpostgresqlが利用できるわけではないので、httpに設定ファイルを再読み込みさせる必要がある。
# service httpd reload
次にpostgresqlの起動だが、そのサーバで初めてpostgresqlを起動させる前にデータベースの初期化を行う必要がある。
# service postgresql initdb
初期化が完了したらいよいよサービスを起動。
# service postgresql start
psコマンドで確認すると /usr/bin/postmaster -p 5432 -D /var/lib/pgsql/dataというプロセスが確認できる。
これは5432ポートとデータディレクトリが/var/lib/pgsql/dataを指定しているものだ。
自動起動にする。
# chkconfig postgresql on
テストも兼ねてphpPgAdminをインストール。
# yum install phpPgAdmin
phpPgAdminは/usr/share/phpPgAdminにインストールされるが、
/etc/httpd/conf.d/phpPgAdmin.confが作成され、
httpdに対して以下のような設定が追加される。
Alias /phpPgAdmin /usr/share/phpPgAdmin <Location /phpPgAdmin> Order deny,allow Deny from all Allow from 127.0.0.1 Allow from ::1 # Allow from .example.com </Location>
これはサーバ機のMozillaなどのブラウザで、 http://127.0.0.1/phpPgAdmin/ へアクセスすればよいことになっている。
設定が追加されたので反映させておく。
# service httpd reload
ただしこのままではログインできないので、以下のような調整を行う必要がある。
1つ目はpostgresqlの設定変更で、/var/lib/pgsql/data/pg_hba.confの編集。
(69行目 host all all 127.0.0.1/32 ident sameuser) host all all 127.0.0.1/32 trust
設定変更を反映させるため以下を実行。
# service postgresql reload
2つ目はSELinuxの設定変更。
システム > 管理 > SELinux Management とメニューを選ぶと、SELinux Administrationというウィンドウが開く。
そこで左側にあるBooleanを選択し、
右側で httpd_can_network_connect_dbをActiveにするためチェックマークを入れる。
3つ目はphpPgAdminの設定変更で、/etc/phpPgAdmin/config.inc.phpを編集。
(18行目 $conf['servers'][0]['host'] = '';) $conf['servers'][0]['host'] = 'localhost';
(73行目 $conf['extra_login_security'] = true;) $conf['extra_login_security'] = false;
(79行目 $conf['owned_only'] = false;) $conf['owned_only'] = true;
これらの設定ができれば、ブラウザ経由でphpPgAdminを利用してPostgreSQLデータベースにアクセスできるようになる。