家計簿を作る(2)
Apache, PHP, PostgreSQLをソースからインストールする手順を見直します. RPMをportsでもよいですが, スクラッチする方が面白いでしょう.
第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