UNIXな生活
更新:2003/7/31  
Linuxな生活  FreeBSDな生活
 Solarisな生活
 JAVAな生活
 Practical use
 掲示版
Solarisで、Tomcat-4.0.6.J2SDK-1.3.Apache-1.3.mod_jk.PostgreSQL

solarisでの、Apahce、mod_jk、Tomcat、PostgreSQLの導入です。
shell設定は、bashとtcshの例です。
環境は、solarisの環境設定(part1,part2,part3)を前提にしています。

再度以下のものがインストールされているか確認してください。
gcc-3.3-sol9-intel-local.gz
libgcc-3.3-sol9-intel-local.gz
lib
xml2-2.5.5-sol9-intel-local.gz
make-3.80-sol9-intel-local.gz
m4-1.4-sol9-intel-local.gz
readline-4.3-sol9-intel-local.gz
gcmn-1.0-pkg.zip
gawk-3.0.6-pkg.zip

j2sdkをインストールしておいてください。こちらを参考に

これ以外に、SOLARIS標準のtcl,tkがあることも確認してください。

また、Solarisパッケージのautoconf,automake,libtoolを使用すると、mod_jkがコンパイルできません。
で、この3つはソースから入れます。
用意するのは以下の3つ。
autoconf-2.57.tar.gz
automake-1.7.5.tar.gz
libtool-1.5.tar.gz


インストール先をprefixで指定しインストールします。
例)
#gtar zxvf
autoconf-2.57.tar.gz /tmp
#cd /tmp/autoconf-2.57
#./configure --prefix=/opt/TSOP
#make
#make install

#gtar zxvf automake-1.7.5.tar.gz /tmp
#cd /tmp/automake-1.7.5
#./configure --prefix=/opt/TSOP
#make
#make install

#gtar zxvf libtool-1.5.tar.gz /tmp
#cd /tmp/libtool-1.5
#./configure --prefix=/opt/TSOP
#make
#make install


*PATHに/opt/TSOP/binと、LD_LIBRARY_PATHに/opt/TSOP/libを/usr/localより先に参照するように設定してください。


インストールのために以下のソースを準備してください。
apache_1.3.27.tar.gz
http://httpd.apache.org/download.cgi

apache-ant-1.5.2-bin.tar.gz
http://ant.apache.org/

jakarta-tomcat-4.0.6.tar.gz
http://jakarta.apache.org/builds/jakarta-tomcat-4.0/release/v4.0.6/bin/

jakarta-tomcat-connectors-jk-1.2.2-src.tar.gz
http://jakarta.apache.org/builds/jakarta-tomcat-connectors/jk/release/v1.2.2/src/

postgresql-7.3.4.tar.gz
http://www.postgresql.jp

pgaccess-0.98.7.tar.gz
http://www.flex.ro/pgaccess/


1.Postgresユーザーの作成
 postgres用のユーザーとグループを作成します。
  #groupadd -g 10002 postgres
  #useradd -d /export/home/postgres -g postgres -m -u 10002 postgres
  #passwd postgres
 *パスワードの設定をしてください。

2.Postgresユーザーのshell設定
  bash
  PATH=/usr/local/bin:/usr/sfw/bin:/opt/sfw/bin
  PATH=$PATH:/usr/dt/bin:/usr/openwin/bin
  PATH=$PATH:/bin:/usr/bin:/usr/sbin:/usr/ccs/bin:/usr/ucb:/etc
  export PATH
  LD_LIBRARY_PATH=/usr/local/lib:/usr/sfw/lib:/opt/sfw/lib
  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/dt/lib:/usr/openwin/lib
  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib:/usr/ccs/lib:/lib
  export LD_LIBRARY_PATH
  MANPATH=$MANPATH:/usr/share/man:/usr/local/man:/opt/sfw/man
  export MANPATH
  export JAVA_HOME=/usr/local/j2sdk1_3_1_08
  export PATH=$JAVA_HOME/bin:$PATH


  tcsh
  set path=(/usr/local/bin /usr/sfw/bin /opt/sfw/bin)
  set path=($path /usr/dt/bin /usr/openwin/bin)
  set path=($path /bin /usr/bin /usr/sbin /usr/ccs/bin /usr/ucb /etc)
  setenv LD_LIBRARY_PATH /usr/local/lib:/usr/sfw/lib:/opt/sfw/lib
  setenv LD_LIBRARY_PATH "$LD_LIBRARY_PATH":/usr/dt/lib:/usr/openwin/lib
  setenv LD_LIBRARY_PATH "$LD_LIBRARY_PATH":/usr/lib:/usr/ccs/lib:/lib
  setenv MANPATH "$MANPATH":/usr/share/man:/usr/local/man:/opt/sfw/man
  setenv JAVA_HOME /usr/local/j2sdk1_3_1_08
  setenv PATH "$JAVA_HOME/bin":"$PATH"


3.Postgresのインストール用ディレクトリの作成とソースの展開
  #mkdir /usr/local/pgsql
  #chown postgres:postgres /usr/local/pgsql


 #gtar zxvf postgresql-7.3.4.tar.gz -C /usr/local/src/
  #chown -R postgres:postgres /usr/local/src/postgresql-7.3.4


4.ANTのインストール
 Postgresのjdbc作成に必要ですので、ここで入れときます。
 #mkdir /usr/local/jakarta
  #gtar zxvf apache-ant-1.5.2-bin.tar.gz -C /usr/local/jakarta/

  PATHの設定
  bash
 export ANT_HOME=/usr/local/jakarta/apache-ant-1.5.2
 export PATH
$ANT_HOME/bin:$PATH
  tcsh
  setenv ANT_HOME /usr/local/jakarta/apache-ant-1.5.2
  setenv PATH "$ANT_HOME/bin":"$PATH"


5.tcl,tkの設定
  solarisにインストールされているtclshは/usr/sfw/tclsh8.3、wishはwish8.3です。
  これをそれぞれ、tclshとwishでソフトリンクを作成ます。
  #ln -s /usr/sfw/tclsh8.3 /usr/sfw/tclsh
  #ln -s /usr/sfw/wish8.3 /usr/sfw/wish


6.Postgresのインストール
  ここからは、postgresユーザーで作業します。
  $cd /usr/local/src/postgres-7.3.4
  %CFLAGS=-02 ./configure --enable-multibyte=EUC_JP --with-java --with-tcl --with-includes="/usr/sfw/include"
   --with-tclconfig=/usr/sfw/lib --with-tkconfig=/usr/sfw/lib
  %make
  %make
  %make install


7.Postgres用のPATH設定
  bash
 
export PATH=$PATH:/usr/local/pgsql/bin
  export PG=/usr/local/pgsql
  export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PG/lib
  export PGLIB=$PG/lib
  export PGDATA=$PG/data
  export MANPATH=$MANPATH:/usr/local/pgsql/man


  tcsh
 
setenv PATH "$ANT_HOME/bin":"$PATH"
  setenv PG /usr/local/pgsql
  setenv PATH "$PG/bin":"$PATH"
  setenv LD_LIBRARY_PATH "$LD_LIBRARY_PATH":"$PG/lib"
  setenv PGDATA /usr/local/pgsql/data
  setenv MANPATH "$MANPATH":/usr/local/pgsql/man


  設定を反映させます。
  $source ~/.bash or ~/.cshrc

8.pgaccessの設定
  現在、私はSolaris上でpgaccessを正常にインストールする事ができません。
  インストール時に、'/usr/local/pgsql/bin/pgaccess'が作成されません。
  pgaccessを使いたい場合は、以下の手順で使用できます。
  A.まずpgaccessを入手します。
 http://www.flex.ro/pgaccess/
  ここの、'Unix.tar.gz file'リンクから、pgaccess-0.98.7.tar.gzを入手します。
  B.'/usr/local'へ展開します。
    #gtar zxvf pgaccess-0.98.7.tar.gz -C /usr/local
  C.起動ファイル、'/usr/local/pgaccess/pgaccess'を編集します。
    PATH_TO_WISH=/usr/bin/wish--------変更前
    PATH_TO_WISH=/usr/sfw/bin/wish----変更後
  D.Postgres用のPATHの設定をすれば使用できるようになります。


9.DBの初期化と設定
  %initdb
  これで/usr/local/pgsql/data以下に領域が設定されます。
  なお、jdbc経由でpostgresに接続するには、tcpip経由のみになります。
  そこで、postgresにtcpip経由で接続できるよう設定します。
  設定は/usr/local/pgsql/data/postgres.confで行ないます。
  postgres.confの以下を変更します。
  #tcpip_socket = false
  tcpip_socket = true


10.自動起動の設定
  ここからはrootで作業します。
  /usr/local/src/postgresql-7.3.3/contrib/start-scripts/以下にlinuxというpostgres起動用スクリプトファイルをそのまま使用できます。
  /etc/init.d/以下にpostgresとしてコピーし、適切なランレベルへ設定してください。
  *ただし、configure時、--without-readlineを指定していない場合は、libreadline.so.4の読み込みができません。
   これを回避するため、'/usr/local/pgsql/bin/pg_ctl'へLD_LIBRARY_PATHを追加します。


  pg_ctlの編集
  #-------------------------------------------------------------------------
  #
  # pg_ctl.sh--
  #    Start/Stop/Restart/HUP/Report status of postmaster
  # Copyright (c) 2001  PostgreSQL Global Development Group
  # IDENTIFICATION
  #    $Header: /cvsroot/pgsql-server/src/bin/pg_ctl/pg_ctl.sh,v 1.30 2002/10/18 22:05:35
  #-------------------------------------------------------------------------
  LD_LIBRARY_PATH=/usr/local/lib
  export LD_LIBRARY_PATH

  CMDNAME=`basename $0`

  これでpostgresの導入は終了です。

11.apacheのインストール
 #tar zxvf apache_1.3.27.tar.gz -C /usr/local/src/
 #cd /usr/local/src/apache_1.3.27
 #./configure --enable-module=so
 #make
 #make install clean


12.apacheの設定

  apacheは/usr/local/apache/conf/httpd.confで設定します。
  最低限起動させるには、httpd.confの以下の行を編集してください。
  #ServerName ******
  ServerName hostname


13.apacheの起動と確認
  起動
  #/usr/local/apache/bin/apachectl start
  これで起動できたはずです。
  確認のためブラウザからアクセスしてみましょう
  http://hostname
  apacheのページが表示されればokです

14.Tomcatのインストール
 #gtar zxvf jakarta-tomcat-4.0.6.tar.gz -C /usr/local/jakarta/
 Tomcatの起動と終了は以下のようにします
 #/usr/local/jakarata/jakarta-tomcat-4.0.6/bin/catalina.sh start *起動
 #/usr/local/jakarata/jakarta-tomcat-4.0.6/bin/catalina.sh stop *終了
 ブラウザーで以下のURLにアクセスするとTomcatのトップページが表示されます。
 http://localhost:8080/

15.mod_jkのインストール(Apache+Tomcatの連携)
 #gtar zxvf jakarta-tomcat-connectors-jk-1.2.2-src.tar.gz -C /usr/local/src/
 #cd /usr/local/src/jakarta-tomcat-connectors-jk-1.2.2-src/jk/native
 #chmod 755 buildconf.sh
 #./buildconf.sh
 #./configure --with-apxs=/usr/local/apache/bin/apxs
   --with-tomcat40=/usr/local/jakarta/jakarta-tomcat-4.0.6
 #make
 #cd /usr/local/src/jakarta-tomcat-connectors-jk-1.2.2-src/jk/native/apache1.3
 #cp mod_jk.0.0.0.so /usr/local/apache/libexec/mod_jk.so


16.mod_jkの設定
  /usr/local/apache/conf/httpd.confに以下を追記。
 Include /usr/local/apache/conf/mod_jk.conf

 /usr/local/apache/conf/mod_jk.conf を新規作成します。

 LoadModule jk_module libexec/mod_jk.so
 <IfModule mod_jk.c>
 JkWorkersFile /usr/local/apache/conf/workers.properties
 JkLogFile logs/mod_jk.log
 JkLogLevel warn
 JkMount /*.jsp worker1
 JkMount /servlet/* worker1
 JkMount /examples/* worker1
 </IfModule>


 /usr/local/apache/conf/workers.properties というファイルを新規作成します。
 worker.list=worker1
 worker.worker1.port=8009
 worker.worker1.host=localhost
 worker.worker1.type=ajp13
 worker.worker1.lbfactor=1



17.mod_jkの動作確認
  TOMCATを起動してからAPACHEを起動します。
 #/usr/local/jakarta/jakarta-tomcat-4.0.6/bin/catalina.sh start
 #/usr/local/apache/bin/apachectl start


 ブラウザーで以下のURLにアクセスするとサンプルサーブレットが試せます。
 http://localhost/examples/servlets/index.html
 ブラウザーで以下のURLにアクセスするとサンプルJSPが試せます。
 http://localhost/examples/jsp/index.html

18.TomcatからPostgresへの接続
 Tomcatからpostgresへ接続するには、JDBCドライバをTomcatのlibへコピーします
 #cp /usr/local/pgsql/share/java/postgresql.jar /usr/local/jakarta/jakarta-tomcat-4.0.6/common/lib/

19.Apache+Tomcatの自動起動の設定
起動スクリプトの作成(参考)

#!/bin/sh
CATALINA_HOME=/usr/local/jakarta/jakarta-tomcat-4.0.6
LD_LIBRARY_PATH=/usr/local/lib
export LD_LIBRARY_PATH#Solarisでmod_jk使用時は、gccライブラリのある場所を指定
JAVA_HOME=/usr/local/j2sdk1_3_1_08##JDKのインストール先を指定
export JAVA_HOME
APACHE_HOME=/usr/local/apache
PROFILEDIR=/var/run
case "$1" in
start)
          if [ -f $PROFILEDIR/WebService ]; then
        echo "Running WebService"
    else
                if [ -f $CATALINA_HOME/bin/startup.sh ]; then

            if [ -f $APACHE_HOME/bin/apachectl ]; then
                "$CATALINA_HOME/bin/startup.sh"
                echo "Startting jakarta-tomcat4.0.6 "
                sleep 15
                echo "Startting Apache web server "
                $APACHE_HOME/bin/apachectl start
                echo "."
                touch $PROFILEDIR/WebService
            else
                                echo "Apache File Not Founds "
            fi

        else
                        echo "Tomcat File Not Founds "
        fi
    fi
        ;;
stop)
         if [ -f $PROFILEDIR/WebService ]; then
        if [ -f $CATALINA_HOME/bin/shutdown.sh ]; then
            if [ -f $APACHE_HOME/bin/apachectl ]; then
                "$CATALINA_HOME/bin/shutdown.sh"
                echo "Stopping jakarta-tomcat "
                sleep 5
                echo "Stopping Apache web server "
                $APACHE_HOME/bin/apachectl stop
                rm $PROFILEDIR/WebService
            else
                echo "Apache File Not Founds "
            fi
        else
                   echo "Tomcat File Not Founds "
        fi
        else
            echo "Not Running WebService "
        fi
        ;;
*)
    echo "Usage: `basename $0` {start|stop}" 1>&2
    exit 1
        ;;
esac

exit 0

これを/etc/init.d/いかにコピーし、適切なランレベルへシンボリックを作成してください。

Producted by Tomoya Sakurai