家計簿を作る(2)

Apache, PHP, PostgreSQLをソースからインストールする手順を見直します. RPMportsでもよいですが, スクラッチする方が面白いでしょう.

第2回はPostgreSQLのインストール.

PostgreSQLを第一にインストールします.このサイトではサーバは基本的に1点集中(FreeBSD)ですがDBサーバだけは内部のLANにあるLinuxマシンに立てています.

ダウンロード

以下のFTPからソースを取得.

http://www.postgresql.org/ftp/
http://www.postgresql.org/download/


アカウントを作成

何の変哲もない極ふつうのアカウントを作成.

# groupadd -g 1000 postgres
# adduser -g 1000 -u 1000 -d /home/postgres -s /bin/bash postgres
# passwd postgres


作業・データ用ディレクトリの作成

インストール先のディレクトリを作成. 例では/usr/local/を選択.

# mkdir /usr/local/postgres
# chown postgres:postgre /usr/local/postgres


インストール開始

# su - postgres
$ cd /usr/local/postgres
$ tar xvzf /tmp/postgresql-X.X.X.tar.gz
$ cd postgresql-X.X.X
$ ./configure --with-template=linux \
--with-mb=EUC_JP \
--with-python \
--enable-syslog
$ make
$ make install

.configureではPythonからアクセスするためのライブラリを作成するため--with-pythonを, syslogにログを出力出来るように--enable-syslogを指定しています. 結局使うのはPHPですが.


環境設定

bashを利用しているので以下の2行を/etc/bashrcへ追加.または各~/.bashrcへ書くとか.

export PATH=$PATH:/usr/local/postgres/bin
export MANPATH=$MANPATH:/usr/local/postgres/man

PostgreSQL のスーパーユーザのみ次も設定.つまり上で作成したpostgres.


export PGDATA=/usr/local/postgres/data

そしてDBを初期化.

($ su - postgres)
$ initdb



PostgreSQLの起動


pg_ctl start

実際には, 以下のような起動スクリプト/etc/rc.localへ記述しています.

rm -f /tmp/.s.PGSQL.*
su postgres -c "/usr/local/pgsql/bin/postmaster \

  • D/usr/local/pgsql/data -S -i -p 5432 &"

if [ -f /usr/local/pgsql/bin/postmaster ]; then
su -l postgres -c "exec /usr/local/pgsql/bin/postmaster \

  • D/usr/local/pgsql/data -S -o -F > \

/usr/local/pgsql/errlog -p 5432 &"
echo "PostgreSQL Server: successfully started."
fi