ウォンツテック

そでやまのーと

PostgreSQL

$ cd ~/src
$ wget どこか/postgresql-8.1.3.tar.gz
$ tar zxvf postgresql-8.1.3.tar.gz
$ cd postgresql-8.1.3
$ ./configure --enable-multibyte=EUC_JP \
              --with-perl \
              --with-tclconfig=/usr/lib \
              --enable-syslog
※その他、参考にしたサイトでは
              --with-tcl \
              --with-pam \
がオプションで付け加えられていた

$ make
$ sudo make install
$ su -
pgsql という名のグループとユーザを作成
# groupadd pgsql
# useradd -g pgsql pgsql
# passwd pgsql
PostgreSQL 用のデータディレクトリを作成
# mkdir /usr/local/pgsql/data
# chown pgsql.pgsql /usr/local/pgsql/data
# exit

# vi .profile (pgsql userのシェルに合わせて編集)
export PATH=$PATH:/usr/local/pgsql/bin
export MANPATH=$MANPATH:/usr/local/pgsql/man
PostgreSQL のスーパーユーザのみ次も設定
export PGDATA=/usr/local/pgsql/data

※5/10追加
以下の環境変数をDBテーブルを操作するユーザに割り当てる
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/pgsql/lib
export MANPATH=$MANPATH:/usr/local/pgsql/man
$ su - pgsql
$ initdb
※このコマンドが成功すれば/usr/local/pgsql/dataに複数
のファイルが生成される
$ pg_ctl start
※起動に成功すると「database system is ready」と表示
される。
以下のコマンドで実行されているか調べられる
$ pg_ctl status

なお、起動時に以下のようにしておくとコンソールに出力
されるメッセージをファイルに出力する事が出来る
$ sudo mkdir /usr/local/pgsql/log
$ sudo chown pgsql.pgsql /usr/local/pgsql/log
$ su - pgsql
$ pg_ctl -l /usr/local/pgsql/log/postgresql.log start
  • データベースのテスト
コンパイルしたユーザで、PostgreSQL のスーパーユーザ(全員にだけど)
に書き込み権限を与える
$ cd ~/src/postgresql-8.1.3
$ chmod -R a+w contrib
$ cd ~/src/postgresql-8.1.3/src/test/regress
$ chmod -R a+w .
※Recursivelyにディレクトリ内のallへ書き込み権限を与える
PostgreSQL のスーパーユーザでランテストを実行

$ su - pgsql
$ cd test/regress
$ gmake all runtest
※gnu makeじゃないとerrorになる

======================
 All xx tests passed.
======================
とでれば成功
※但しfloat や、geometry などは、表示や、精度の違いで
failedとなる場合があるが、気にしなくてもいいらしい
BSD系の場合
$ sudo vi /etc/rc.local
su -l pgsql -s /bin/sh -c "/usr/local/pgsql/bin/pg_ctl -l \
/var/log/postgresql.log start > /dev/null 2>&1" < /dev/null
を追加

Apache

  • apacheインストール&起動
$ wget どこか/httpd-2.0.55.tar.gz
$ tar zxvf httpd-2.0.55.tar.gz
$ cd httpd-2.0.55
$ ./configure --prefix=/home/sode/apache --enable-so \
 --with-mpm=prefork
※--enable-soでlibphp5.soなどのDSOモジュールを
ロード出来るようになる
$ make
$ sudo make install
$ cd ~/apache/conf/
$ vi httpd.conf
適切に編集
$ cd ../bin
$ ./apachectl start

PHP

  • PHPのインストール準備
zlib-1.2.3.tar.gz
libpng-1.2.10-no-config.tar.gz
jpegsrc.v6b.tar.gz
gd-2.0.33.tar.gz
をtar zxvfしてmakeしてsudo make install
  • PHPインストール
$ wget どこか/php-5.1.4.tar.gz
$ tar zxvf php-5.1.4.tar.gz
$ cd php-5.1.4.tar.gz
$  ./configure --with-apxs2=/usr/local/apache/bin/apxs \
              --with-pgsql=/usr/local/pgsql \
              --with-config-file-path=/usr/local/apache/conf/php \
              --enable-mbstring --enable-mbstr-enc-trans \
              --enable-mbregex
※pgsqlやapacheはインストールしたフォルダに変更
  apache2.0を使う場合は--with-apxs2にすること
$ make
$ sudo make install
  • PHP初期設定
# cd mkdir /usr/local/apache/conf/php
# cp php.ini-dist /usr/local/apache/conf/php/php.ini
※apacheをインストールしたディレクトリに適当に変更
Apache から php モジュールが有効になるように、httpd.conf 
ファイルを編集します。
# cd /usr/local/apache/conf

なんか知らんがapache起動出来ず。。。
いろんなサイト見て回ったが解決方法が載ってない・・
ムッカー

OSはOpenBSD
httpd.confで「LoadModule php5_module modules/libphp5.so」
って行をコメントアウトすると起動出来るので、このモジュールが問題
だとは思うが。。
エラーも吐かれてないし、さっぱりわからん!
チキシャーーーーーーーーー


5/10
わかった!
apacheを起動しようとするユーザの環境変数LD_LIBRARY_PATHがおかしかった
せい。

LD_LIBRARY_PATH=/usr/local/lib:/usr/local/X11/lib:\
/usr/lib:/usr/X11R6/lib:/usr/local/pgsql/lib

とやったら正常化。「/usr/local/pgsql/lib」が無くておこられていた模様。
emacsも何故か起動できななっていて/usr/X11R6/libをLD_LIBRARY_PATH
に追加したところ正常化したので、これが原因と推測してやってみた。
でもなぜLD_LIBRARY_PATHがおかしくなったかはまだわからず。
※ライブラリサーチパスを追加したところエラー出力もちゃんとされる
ようになった