PostgreSQLはRPMで組み込まれているサーバにインストールするとエラーが起きる場合があるので、入っているかどうかを確認し、入っていれば削除してからインストールを行う。
RPMでインストールされているかを確認する。
# rpm -qa | grep postgres PostgreSQL関係のパッケージが現れたら、それらを全てアンインストールする。例えばpostgresql-serverをアンインストールするには次のように行う。
# rpm -e postgresql-server
1.PostgreSQLの管理ユーザを作成
データベースは通常rootではなく専用のユーザを作り、そのユーザが管理を行う。予めrootでログインし、管理ユーザを作成する。
# useradd postgres
# passwd postgres
(パスワードを設定する)2.PostgreSQL用ディレクトリの作成
PostgreSQLの実行ファイルやデータを格納するディレクトリを作成する。
# mkdir /usr/local/pgsql
# chown postgres.postgres /usr/local/pgsql
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 install3.オンライン・マニュアルのインストール
引き続き、オンライン・マニュアルのインストールを行う(任意)。
/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
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
サーバ起動時にPostgreSQLのデーモン・プロセスである
postmasterが自動的に起動するように設定を行う。
$ exit ←postgresユーザを抜け、rootに戻る
# cd /usr/local/src/postgresql-7.0.2/contrib/linux
# ./postgres.init.sh installINITスクリプトを編集するため、viで開く。
# vi /etc/rc.d/init.d/postgres スクリプト内の
PGOPTSの値を次のように書き換え、保存する。(大文字、小文字の違いに注意!!)
PGOPTS="" # -B 256
↓
PGOPTS="-S -i -o '-F'" # -B 256マシンを再起動し、postmasterが動いているかどうか確認する。再起動後、rootでログインし、サービスが動いているかどうかを確認する。
# ps ax postmasterがあれば成功。
PostgreSQLは最初に一度だけ、データベースの初期化をしなければならない。
# su - postgres
$ initdb
PostgreSQLにアクセスするプログラムの多くは、共有ライブラリ「libpq」を呼び出して使用している。そのため、libpqが何処にあるのかを設定する。Red Hat系のディストリビューションの場合、ld.so.confファイルに設定を行う。
$ exit ←postgresユーザを抜け、rootに戻る
# vi /etc/ld.so.confファイルの終わりに次の1行を追加する。
/usr/local/pgsql/lib 設定を保存し、反映させる。
# ldconfig
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」が登録された。