PostgreSQL6.5.1
Apache1.3.9+PHP3.0.12+openssl0.9.3a+mod_ssl2.4.5
on FreeBSD 3.2-RELEASE
 
FreeBSDも3.2になり、Apacheも・PHPもPostgreSQLもどんどん新しいヴァージョンがリリースされてきました。 心機一転インストール記です。

PostgreSQL6.5.1のインストール
openssl0.9.3aのインストール
Apache1.3.9+PHP3.0.12+openssl0.9.3a+mod_ssl2.5.4のインストール

mod_sslの設定

PostgreSQL6.5.1のインストール

まず一連の作業で必要なツールをインストールしておきます。

●GNUmake gmake
●gdbm
●gcc 2.7.2以上
●bison
●flex 2.5.2または2.5.4
gmakeとgdbmは/usr/portsからインストールしました。FreeBSD 3.2Rをフツーにインストール するとgcc/bison/flexはインストールされます。
FreeBSD 2.2.8Rで必要だったカーネルの再構築も不要です。
rootになってpostgres:postgresと言うuserとgroupを作っておき
tar zxvf postgresq.-6.5.1.tar.gz してから
mkdir /usr/local/pgsql
chown -R postgres:postgres /usr/local/pgsql
chown -R postgres:postgres /usr/local/src/postgresql-6.5.1

しておきます。
postgresになって
cd /usr/local/src/postgresql-6.5.1/src
./configure --with-mb=EUC_JP

gmake all ★必ずGNUmakeを使うこと
gmake install
これでインストールは終わり。その後設定。
.bash_profileに以下を追加します。

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 ~/.bash_profile

データベースを初期化します。(
これは一度だけ実行すれば良いです。)
 $ initdb
これで /usr/local/pgsql/data/ 以下にデータベース領域が初期設定されます。
次にpostgres デーモン(postmaster)を立ち上げます。
デフォルトでは localhost からの接続のみ許可されておりremote host からのアクセスは
一切できないようになっています。とりあえずどこからでもアクセスできるようにしたい場合
は、

/usr/local/pgsql/data/pg_hba.conf の
#host all 0.0.0.0 0.0.0.0 trustの
行頭の#を削除。

なお変更したいときは
chmod 600 pg_hba.conf 
しておかないと変更できません。あとでちゃんと
chmod 400 pg_hba.confで元通りにしておくこと。
 
それからいよいよ動作テストです。postmaster が動いていなければ立ち上げます。

$ postmaster -S -i
(あとで起動用スクリプトをつくっておきますが。)
regression 用のディレクトリに移ります。
$ cd href/test/regress

regression test を実施します。
$ gmake all runtest
テスト項目毎に ok/fail が出力されますが "fail" と出てもあわてないこと。
いくつかのエラーはでます。全滅に近ければコンパイルに失敗していますが、3つや4つの
エラーはOKです。(かなりいい加減。) 

最後に /usr/local/etc/rc.d/ にpostgresqlの起動スクリプトを書いて実行属性を与えて おきます。
(例)
postgresql.sh
#! /bin/sh
rm /tmp/.s.PGSQL.*
su postgres -c "/usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data -S -i"

★ rm /tmp/.s.PGSQL.* は異常終了するとロックファイルができて、postgresqlが起動しない ことがあるのでいれておきます。


高村のホームに戻る  いとうのホームへ


openssl0.9.3aのインストール
 
先にopensslをインストールしておきます。
以下はrootで作業。
ftp://ftp.openssl.org/source/

からopenssl-0.9.3a.tar.gz をgetしてきます。

cd /usr/local/src/
tar xzfv openssl-0.9.3a.tar.gz
cd openssl-0.9.3a
./Configure FreeBSD-elf (-elfを付けないとエラーになります。3.2からelfなのね。)
make clean
make
make rehash
make test
make install
で終わり。インストール先はSSLeayと同じ /usr/local/ssl になります。

高村のホームに戻る  いとうのホームへ


Apache1.3.9+PHP3.0.12+mod_ssl2.4.5のインストール


Apacheインストールの方針は、mod_sslはApacheと一緒にmake、他はADOで組み込むことに
します。
以下はrootで作業します。

すでに apache 1.3.x を動かしている場合は、
/usr/local/apache/bin/apachectl stop 
でapacheを停止させます。
念のために httpd.confやDocumentRoot以下をバックアップしてから、古い
/usr/local/apache以下を削除します。

ソースは /usr/local/src 以下にあるものとします。
apache_1.3.9.tar.gz
mod_ssl-2.4.5-1.3.9.tar.gz
php-3.0.12.tar.gz
です。

tar xvzf /usr/local/src/apache_1.3.9.tar.gz
tar xvzf /usr/local/href/mod_ssl-2.4.5-1.3.9.tar.gz
export LD_LIBRARY_PATH=/usr/local/pgsql/lib
( make の途中で PostgreSQL のライブラリ libpq を見に行けるように)

cd /usr/local/src/apache_1.3.9/
./configure --prefix=/usr/local/apache
cd ../mod_ssl-2.4.5-1.3.9
./configure --prefix=/usr/local/apache \
--with-layout=Apache --with-apache=/usr/local/src/apache_1.3.9 \ --with-ssleay=/usr/local/src/openssl-0.9.3a --with-perl=/usr/bin/perl

終わると
Now proceed with the following commands:
$ cd /usr/local/src/apache_1.3.9
$ make
$ make certificate
$ make install

と言われるが、

cd /usr/local/src/apache_1.3.9/src/modules/standard

make
make mod_so.o

を一発かまして mod_so.c から mod_so.o を作ってから

cd /usr/local/src/apache_1.3.9/
OPTIM="-O2" ./configure --prefix=/usr/local/apache --enable-module=most \
--enable-module=so
(ここでSSL関係のモジュールが表示されなければ×)
make clean
make
make certificate で鍵の作成がされます。

以下ここを参照のこと。
以下略

と適当に答えておいてから

make install

で取りあえず終了。mod_ssl付きのapacheとしてはこれで動くはずなので確認
します。
cd /usr/local/apache/bin/
./apachectl start
してブラウザで見てみて例の「It Worked!」が表示されれば良し。動いているのが 確認できたら
./apachectl stop する。

次にphp3.0.12を作ります。


cd /usr/local/src/php-3.0.12
./configure --with-pgsql --with-apxs=/usr/local/apache/bin/apxs
make
make install

その後apacheのconfiguration
cd /usr/local/apache/conf
ee httpd.conf

LoadFile /usr/local/pgsql/lib/libpq.so
LoadModule php3_module libexec/libphp3.so
LoadModule php3_module libexec/libphp3.so

User wwwadmin
Group www
(あたりまえだけどこのユーザとグループはあらかじめ作っておく)

ServerAdmin webmaster@itoh.co.jp

ServerName db.itoh.co.jp

DirectoryIndex index.html index.php3

と変更・追加してから

/usr/local/etc/rc.d/apache.sh

#!/bin/sh
#
apache=/usr/local/apache/bin/httpd
apachectl=/usr/local/apache/bin/apachectl

export LD_LIBRARY_PATH=/usr/local/pgsql/lib

if [ -f $apache ]; then
$apachectl startssl
echo -n ' Apache SSL Server Started '
fi

のような内容を作っておき実行属性をあたえます。 途中のexportはphpを組み込むときのおまじないです。(これが無いとapacheが動きません。)


/usr/local/etc/rc.d/apache.sh
すると
パスフレーズを聴いてくるのでさっきapacheをmake するときの
make certificate
で入力したパスフレーズを入れて起動完了。

やっぱりブラウザで動作確認する。http://localhost/ の他に
https://localhost/ も試してみる。php3の動作確認は
/usr/local/src/php-3.0.12/examples/date.php3をhtdocs以下にコピーを取ってきて
http://localhost/date.php3 して試してみて、現在の時刻がでてくればOK。

しかし、このままではapacheを起動するときにいちいちパスフレーズを入れるのが大変なので

/usr/local/apache/conf/httpd.conf
の中の
SSLPassPhraseDialog builtin

SSLPassPhraseDialog exec:/usr/local/apache/etc/ssl/keys/pp-filter
に変更しておいて

/usr/local/apache/etc/ssl/keys/pp-filter

#!/bin/sh
echo <** パスフレーズ **>
を書いておき、rootだけが実行できるようにしておきます。(絶対!!)
 
なお、https://localhost/ とやると http://localhost/ と同じところが見えます。
(初めからVirtualDomainの設定がされてます。)



高村のホームに戻る  いとうのホームへ



高村のホームに戻る  いとうのホームへ