おうちでこの演習をやりたい方へ

自宅でLinuxを使っている人向けに、PostgreSQL + Tomcat3.2.4を使ってこの演習が出来る環境を作る方法を二通りここで記述する。一つ目は、ディストリビューション付属のPostgreSQLパッケージをそのまま使用する方法、二つ目はソースコードからコンパイルしてインストールする方法。

ディストリビューション付属のPostgreSQLパッケージを使用する方法

この方法は、JDBCの日本語対応が最近なされたということもあり、比較的新しいディストリビューションを使用しなければならない。動作確認ディストリビューションは以下の通り。ただし、これは参考程度で、動作を保証するものではない。
ディストリビューション状況
Turbo Linux 8 WorkStation○、そのまま使用して特に問題はない
Redhat Linux 7.3×、JDBCで日本語に文字化けが起こる。
Vine Linux 2.5○、そのまま使用して特に問題はない
Laser5 Linux 7.2exp○?、確かできたような気がする・・・
Vine Linux 2.1.5△、JDBCドライバだけ他のサイトなどから拾ってきたらできる

インストール

まず、PostgreSQLパッケージをインストールしておく。
最低限必要なのは、PostgreSQL-7.2.*.rpmと、PostgreSQL-jdbc-7.2*.rpmと、PostgreSQL-server-7.2.*.rpm。RPMインストールコマンドは

rpm -ivh パッケージ名

次に、JavaSDKをRPMパッケージでインストール。(ここではVersion1.4.0_01とする)

Tomcatのインストール。このあたりはroot権限で。
jakarta-tomcat-3.2.4.tar.gzを用意する。(動作が重いと感じれば3.2.3でもいいと思う)

# mkdir /usr/local/jakarta
# tar zxvf jakarta-tomcat-3.2.4.tar.gz -C /usr/local/jakarta
# chown -R tomcatを動作させるユーザ名:そのユーザのグループ名 /usr/local/jakarta
# chmod 755 /usr/local/jakarta/jakarta-tomcat-3.2.4/bin/ant
# chmod 755 /usr/local/jakarta/jakarta-tomcat-3.2.4/bin/*.sh

環境変数の設定

# vi /etc/profile
以下を追加
PATH=$PATH:/usr/java/j2sdk1.4.0_01/bin
JAVA_HOME=/usr/java/j2sdk1.4.0_01
TOMCAT_HOME=/usr/local/jakarta/jakarta-tomcat-3.2.4
export PATH JAVA_HOME TOMCAT_HOME
Servletのコンパイルを自前でjavacコマンドを使って行うならば以下も環境変数に付け足すとよい。(あまりおすすめでないが)
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$TOMCAT_HOME/lib/ant.jar:$TOMCAT_HOME/lib/servlet.jar  
export CLASSPATH

ここからPostgreSQLの設定。
まずは一度起動して、Databaseを初期化させる。

# /etc/rc.d/init.d/postgresql start

TCP/IPの通信を許可するようにする。

# vi /var/lib/pgsql/data/postgresql.conf
tcpip_socketの値をtrueにする。この1文にかかっているコメントも外しておく。

接続できるマシンのアドレスを設定

# vi /var/lib/pgsql/data/pg_hba.conf
このファイルの後ろの方の
host all 127.0.0.1 255.255.255.255 trust
を自分のLANの設定に合わせて書き換える。この文にコメントがかかっている場合は外しておく。たとえば
host all 192.168.0.0 255.255.255.0 trust
としておけばクラスCのLAN内からのマシンからはアクセスできるようになる。allは全てのDatabaseという意味で、trustはアクセス権限の種類を示す。詳細については省略する。

あとはPostgreSQLを使用できるユーザの設定とDatabaseの作成。

# su postgres
# createuser ユーザ名
# createdb データベース名
# exit
# /etc/rc.d/init.d/postgresql restart

自動起動の設定

# /usr/sbin/setup
サービスの設定という項目で簡単にできる。

Tomcatの起動方法
tomcatを動かすユーザ権限で

# $TOMCAT_HOME/bin/startup.sh
# $TOMCAT_HOME/bin/shutdown.sh
で起動と終了。


とりあえずな簡単な開発の仕方(めんどくさいので無名パッケージの場合)

開発ユーザ権限で

# cp -R $TOMCAT_HOME/doc/appdev/sample 好きなところ
コピーしたところに移動して
$ vi build.xml
name属性がapp.nameになっている要素のvalue属性の値を任意の名前(デフォルトではmyapp)に変える。

Servletのソースファイルを先ほどコピーしたディレクトリから見てsrc/にぶちこむ。 JSPファイルはweb/にぶちこむ。コンパイル&ファイルの配置は

./build.sh
だけで済む。

Tomcatを起動したら、ブラウザから

http://サーバ名:8080/app.nameで設定した名前/servlet/クラス名(".class"は要らない)
で作成したServletクラスにアクセスできる。JSPファイルは
http://サーバ名:8080/app.nameで設定した名前/JSPファイル名(".jsp"は付ける)
からアクセスする。

以上。


ソースコードからインストールをする

この情報は古いので、どうしてもというとき以外はあまり参考にしない方がいいかもしれない。(PostgreSQLのバージョンは7.1.3)

Postgresのソースファイルを手に入れておく。

rootでlogin

J2SDKのインストール

# ./bin j2sdk-1.3.0_02-linux.rpm.bin
# rpm -ivh j2sdk-1.3.0_02-linux.rpm
# rm j2sdk-1.3.0_02-linux.rpm

# xemacs /etc/profile
以下を最終行に追加
export JAVA_HOME=/usr/java/jdk1.3.0_02
export PATH=$PATH:$JAVA_HOME/bin
# source /etc/profile

TOMCATのインストール

# mkdir /usr/local/jakarta
# tar zxvf jakarta-tomcat-3.2.3.tar.gz -C /usr/local/jakarta
# chown -R tomcatを動かすユーザ名:tomcatを動かすユーザ名 /usr/local/jakarta
# chmod 755 /usr/local/jakarta/jakarta-tomcat-3.2.3/bin/ant
# chmod 755 /usr/local/jakarta/jakarta-tomcat-3.2.3/bin/*.sh
# xemacs /etc/profile
以下を追加
export ANT_HOME=/usr/local/jakarta/jakarta-tomcat-3.2.3
export TOMCAT_HOME=/usr/local/jakarta-jakarta-tomcat-3.2.3
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$ANT_HOME/lib/ant.jar     
export PATH=$ANT_HOME/bin:$PATH
# source /etc/profile

postgresユーザ作成

# useradd -m postgres

インストール用ディレクトリ作成

# mkdir /usr/local/pgsql
# chown postgres:postgres /usr/local/pgsql
# mkdir /usr/local/src/pg
# chown postgres:postgres /usr/local/src/pg

ソースをコピー

# su postgres
# tar zxvf postgresql-7.1.3-patched-20010914.tar.gz -C /usr/local/src/pg
# cd /usr/local/src/pg/postgresql-7.1.3
# source /etc/profile
# ./configure --enable-multibyte=EUC_JP --enable-unicode-conversion --with-java

コンパイル

# make
すっごく時間がかかります。 "ALL of PostgreSQL is successfully made. Ready to install."と表示される
# make check
"ALL 76 tests passed."と出る。もし75 of 76とかでも大丈夫そうなことが書 いてあれば決行で。ダメそうな時は知らん。
# make install
rootにもどる
# exit
# xemacs /etc/profile
以下を追記
export POSTGRES_HOME=/usr/local/pgsql
export PGCLIENTENCODING=EUC_JP
export PGLIB=/usr/local/pgsql/lib
export PGDATA=/usr/local/pgsql/data
export PATH=$PATH:/usr/local/pgsql/bin
export MANPATH=$MANPATH:/usr/local/pgsql/man
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"$PGLIB"
export CLASSPATH=$CLASSPATH:$POSTGRES_HOME/share/java/postgresql.jar:
$POSTGRES_HOME/share/java/postgresql-examples.jar:
$POSTGRES_HOME/share/java/retepTools.jar:
最後のexportにもちろん実際は改行を入れてはいけない。

postgresアカウントにパスワードを設定

# passwd postgres
New UNIX password:
Retype new UNIX password:
お好きなパスワードをどうぞ

再起動

# shutdown -hr now

postgresでlogin
データベースの初期化

# initdb
アクセス許可の設定
# xemacs $PGDATA/pg_hda.conf
このファイルの後ろのほうの
host     all    127.0.0.1    255.255.255.255  trust
を自分のLANの設定に合わせて書き換える
host     all    192.168.0.0    255.255.255.0  trust
とすれば、クラスCのLAN内の192.168.0.*のマシンからアクセス可能

いったんlogoutして、rootでlogin

# xemacs /etc/rc.d/rc.local
以下を追記
su - postgres -c "/usr/local/pgsql/bin/postmaster -S -i"
これでboot時にpostmasterが起動する。 (Vine Linuxでは自動起動しなかった・・・)

再起動

# shutdown -hr now

postgresでlogin

# cd /usr/local/src/pg/postgresql-7.1.3/src/test/postgres
# make runtest

以下、略。


←戻る