PostgreSQL 7.0.2インストール

PostgreSQLはRPMで組み込まれているサーバにインストールするとエラーが起きる場合があるので、入っているかどうかを確認し、入っていれば削除してからインストールを行う。

1.RPMの確認と削除

RPMでインストールされているかを確認する。

# rpm -qa | grep postgres

PostgreSQL関係のパッケージが現れたら、それらを全てアンインストールする。例えばpostgresql-serverをアンインストールするには次のように行う。

# rpm -e postgresql-server

2.インストール前の作業

1.PostgreSQLの管理ユーザを作成

データベースは通常rootではなく専用のユーザを作り、そのユーザが管理を行う。予めrootでログインし、管理ユーザを作成する。

# useradd postgres
# passwd postgres
(パスワードを設定する)

2.PostgreSQL用ディレクトリの作成

PostgreSQLの実行ファイルやデータを格納するディレクトリを作成する。

# mkdir /usr/local/pgsql
# chown postgres.postgres /usr/local/pgsql

3.インストール

1.ソースの展開

ソースファイルを/usr/local/srcにコピーし、展開する。

# cd /usr/local/src
# tar zxvf postgresql-7.0.2.tar.gz

作成されたディレクトリのオーナーとグループを変更する。

# chown -R postgres.postgres postgresql-7.0.2

2.コンパイル、インストール

ここから先はpostgresのユーザ権限で作業を行うので、postgresユーザになる。

# su - postgres

作成されたディレクトリに移動し、コンパイル、インストールを行う。

$ cd /usr/local/src/postgresql-7.0.2/src
$ ./configure --enable-multibyte=EUC_JP ←日本語(EUC)を使うためのオプション
$ make
$ make install

3.オンライン・マニュアルのインストール

引き続き、オンライン・マニュアルのインストールを行う(任意)。
/usr/local/src/postgresql-7.0.2/docにアーカイブ・ファイルとして保存されているので、/usr/local/pgsql/manディレクトリに展開する。

$ mkdir /usr/local/pgsql/man
$ cd /usr/local/pgsql/man
$ tar zxvf /usr/local/src/postgresql-7.0.2/doc/man.tar.gz

4.環境変数の設定

PostgreSQLを動作させるため、postgresユーザの環境変数を設定する。

$ cd ←ホームディレクトリに戻る
$ vi .bash_profile

以下の設定を追加する。

export PATH="$PATH":/usr/local/pgsql/bin
export POSTGRES_HOME=/usr/local/pgsql
export PGLIB=$POSTGRES_HOME/lib
export PGDATA=$POSTGRES_HOME/data
export MANPATH="$MANPATH":$POSTGRES_HOME/man
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"$PGLIB"

編集が終了したら、sourceコマンドで設定を反映させる(またはログアウトし、再度ログイン)。

$ source .bash_profile

5.自動起動の設定

サーバ起動時にPostgreSQLのデーモン・プロセスであるpostmasterが自動的に起動するように設定を行う。

$ exit ←postgresユーザを抜け、rootに戻る
# cd /usr/local/src/postgresql-7.0.2/contrib/linux
# ./postgres.init.sh install

INITスクリプトを編集するため、viで開く。

# vi /etc/rc.d/init.d/postgres

スクリプト内のPGOPTSの値を次のように書き換え、保存する。(大文字、小文字の違いに注意!!)

PGOPTS="" # -B 256

PGOPTS="-S -i -o '-F'" # -B 256

マシンを再起動し、postmasterが動いているかどうか確認する。再起動後、rootでログインし、サービスが動いているかどうかを確認する。

# ps ax

postmasterがあれば成功。

5.データベースの初期化

PostgreSQLは最初に一度だけ、データベースの初期化をしなければならない。

# su - postgres
$ initdb

6.その他の設定

PostgreSQLにアクセスするプログラムの多くは、共有ライブラリ「libpq」を呼び出して使用している。そのため、libpqが何処にあるのかを設定する。Red Hat系のディストリビューションの場合、ld.so.confファイルに設定を行う。

$ exit ←postgresユーザを抜け、rootに戻る
# vi /etc/ld.so.conf

ファイルの終わりに次の1行を追加する。

/usr/local/pgsql/lib

設定を保存し、反映させる。

# ldconfig

7.Apacheからデータベースを利用するための設定

PostgreSQLが使えるようにはなったが、このままではApacheからデータベースが利用できない。
ApacheとPHP、PostgreSQLを組み合わせてWeb-DBMS連携システムを構築するには、Apacheの実行ユーザであるnobodyをPostgreSQLのユーザとして登録しなければならない。

PostgreSQLのユーザ登録は、DB管理者であるpostgresユーザで行う。なお、ユーザ登録時にたずねられる質問には全て「n」と答える。

# su - postgres
$ createuser nobody
Shall the new user be allowed to create databases?(y/n) n
Shall the new user be allowed to create more new users?(y/n) n
CREATE USER

これで、PostgreSQLのユーザとしてApacheの実行ユーザ「nobody」が登録された。


[ TOP ]