52
57

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

JavaのWebアプリケーションサーバーの構築手順

Last updated at Posted at 2015-06-07

JDKのインストール

OracleのダウンロードページからLinux版JDKをダウンロードする.

  • 「Accept License Agreement」をチェックしてダウンロード.
  • 執筆時点の最新版はjdk-8u45-linux-x64.rpm
  • 64bit Linux 用の「Linux x64」は tar.gz 版と RPM 版がありますが、今回は RPM 版.
      

scpコマンドまたはFTPツール等でサーバーにjdkをアップロード.

JDKのインストール

  • rpm コマンドだけでインストールは完了する.
   # rpm -ivh jdk-8u45-linux-x64.rpm
   準備しています...              ################################# [100%]
   更新中 / インストール中...
     1:jdk1.8.0_45-2000:1.8.0_45-fcs    ################################# [100%]
    Unpacking JAR files...
     rt.jar...
     jsse.jar...
     charsets.jar...
     tools.jar...
     localedata.jar...
     jfxrt.jar...
     plugin.jar...
     javaws.jar...
     deploy.jar...

JDKのインストール先の確認

$ ls -l /usr/java/
合計 4
lrwxrwxrwx 1 root root   16  6月  7 09:42 default -> /usr/java/latest
drwxr-xr-x 9 root root 4096  6月  7 09:42 jdk1.8.0_45
lrwxrwxrwx 1 root root   21  6月  7 09:42 latest -> /usr/java/jdk1.8.0_45
  • 実態は /usr/java/jdk1.8.0_45 配下にインストールされている.
  • 2つのリンク default と latest が作成されている.

環境変数の設定

~/.bash_profile へ追記

  export JAVA_HOME=/usr/java/default
  • 次回、最新のJDKをインストールしたとき、パス設定を変更不要とするためにJAVA_HOME を   /usr/java/default とする.

変更した ~/.bash_profile を有効化

$ source ~/.bash_profile

Tomcatのインストール

Tomcatの公式ホームページからパッケージをダウンロードする.

Coreの中の[tar.gz]をダウンロードすれば良い。 8.0.23ならapache-tomcat-8.0.23.tar.gzというファイルになる.

ダウンロードしたtar.gzを/usr/localに展開する

```
# tar xvzf apache-tomcat-8.0.23.tar.gz
# mv apache-tomcat-8.0.23 /usr/local
```

Tomcat管理ユーザーを作成する

  • Tomcatをroot権限で扱っていると、セキュリティホールがあった時に
    サーバのroot権限が取られる可能性がある.
  • そこで実行専用のユーザとして、tomcatというアカウントを作成する.
  • このtomcatユーザは、-s オプションでログインシェルに/sbin/nologinを指定して通常利用はできないようにしておく.
# useradd -s /sbin/nologin tomcat

展開後、ディレクトリのオーナーをtomcatユーザーにする.

# cd /usr/local
#  chown -R tomcat:tomcat apache-tomcat-8.0.23

tomcatという名前でシンボリックリンクを作成しておく

# ln -s apache-tomcat-8.0.23 tomcat

/usr/local/tomcat/logs/内のファイルオーナーをtomcatユーザーにする

chown tomcat:tomcat /usr/local/tomcat/logs/*

環境変数の設定

~/.bash_profile へ追記

 export CATALINA_HOME=/usr/local/tomcat

変更した ~/.bash_profile を有効化

$ source ~/.bash_profile

Tomcatの起動確認

  • 実行権限の確認
# ls -l /usr/local/tomcat/bin/
-rw-r--r-- 1 tomcat tomcat  28386  5月 19 15:00 bootstrap.jar
-rw-r--r-- 1 tomcat tomcat   1647  5月 19 15:03 catalina-tasks.xml
-rw-r--r-- 1 tomcat tomcat  13825  5月 19 15:00 catalina.bat
  • 実行権限の付与
# chmod +x /usr/local/tomcat/bin/*
  • 再確認
# ls -l /usr/local/tomcat/bin/
rwxr-xr-x 1 tomcat tomcat  28386  5月 19 15:00 bootstrap.jar
-rwxr-xr-x 1 tomcat tomcat   1647  5月 19 15:03 catalina-tasks.xml
-rwxr-xr-x 1 tomcat tomcat  13825  5月 19 15:00 catalina.bat
  • 起動
# /usr/local/tomcat/bin/startup.sh
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/java/default
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
  • 停止
 # /usr/local/tomcat/bin/shutdown.sh
 Using CATALINA_BASE:   /usr/local/tomcat
 Using CATALINA_HOME:   /usr/local/tomcat
 Using CATALINA_TMPDIR: /usr/local/tomcat/temp
 Using JRE_HOME:        /usr/java/default
 Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

自動起動スクリプト作成

init.dにスクリプトを新規登録.

# vim /etc/rc.d/init.d/tomcat
#!/bin/bash
#
# Startup script for the Tomcat Servlet Container
#
# chkconfig: 2345 35 65
# description: Tomcat is the servlet container that is used in the official \
#              Reference Implementation for the Java Servlet and JavaServer \
#              Pages technologies

TOMCAT_USER=tomcat
CATALINA_HOME=/usr/local/tomcat

. /etc/rc.d/init.d/functions
prog=tomcat

start() {
    echo -n $"Starting $prog: "
    daemon --user $TOMCAT_USER $CATALINA_HOME/bin/startup.sh > /dev/null
    RETVAL=$?
    if [ $RETVAL -eq 0 ]; then
        echo_success
    else
        echo_failure
    fi
    echo
    [ $RETVAL = 0 ] && touch /var/lock/subsys/$prog
    return $RETVAL
}
stop() {
    echo -n $"Stopping $prog: "
    daemon --user $TOMCAT_USER $CATALINA_HOME/bin/shutdown.sh > /dev/null
    RETVAL=$?
    if [ $RETVAL -eq 0 ]; then
        echo_success
    else
        echo_failure
    fi
    echo
    [ $RETVAL = 0 ] && rm -f /var/lock/subsys/$prog
    return $RETVAL
}

# See how we were called.
case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    stop
    start
    ;;
  status)
    INSTANCES=`ps --columns 512 -aef|grep java|grep tomcat|grep org.apache.catalina.startup.Bootstrap|wc -l`
    if [ $INSTANCES -eq 0 ]; then
        echo $prog is stopped
        RETVAL=3
    else
        if [ $INSTANCES -eq 1 ]; then
            echo $prog is running 1 instance...
        else
            echo $prog is running $INSTANCES instances...
        fi
        RETVAL=0
    fi
    ;;
  *)
    echo $"Usage: $prog {start|stop|restart|status|help}"
    exit 1
esac

exit $RETVAL

確認

# ls -l /etc/rc.d/init.d/tomcat
-rw-r--r-- 1 root root 1603  6月  7 12:05 /etc/rc.d/init.d/tomcat

実行権限を付与

# chmod +x /etc/rc.d/init.d/tomcat

再確認

# ls -l /etc/rc.d/init.d/tomcat
-rwxr-xr-x 1 root root 1603  6月  7 12:05 /etc/rc.d/init.d/tomcat

起動スクリプトからの起動確認

# /etc/rc.d/init.d/tomcat start
tomcat を起動中:                                           [  OK  ]

停止

# /etc/rc.d/init.d/tomcat stop
tomcat を停止中:                                           [  OK  ]

自動起動登録

chkconfig確認

# chkconfig --list tomcat
サービス tomcat は chkconfig をサポートしますが実行レベルで参照されていません (run 'chkconfig --add tomcat')

chkconfig にTomcatを追加

# chkconfig --add tomcat

もう一度確認

chkconfig --list tomcat
tomcat         	0:off	1:off	2:on	3:on	4:on	5:on	6:off

Tomcat自動起動セット

# chkconfig tomcat on

Apache/Tomcatの連携設定

Apacheの設定ファイル追加

  • http:/ホスト名/hello/で始まるURLを使ってアクセスがあった場合にTomcat側のファイルを呼び出すようにする.そこでセクションコンテナとして「Location」を使う。
  • Tomcat側へアクセスを飛ばす設定をこの中に記述する。Tomcat側へはAJP/1.3プロトコルで8009番ポートを使って接続を行う
  • 下記のように/etc/httpd/conf/extra/httpd-proxy.confに追記
mkdir /etc/httpd/conf/extra
vim /etc/httpd/conf/extra/httpd-proxy.conf
  <Location /hello/>
  	ProxyPass ajp://localhost:8009/hello/
  </Location>

/etc/httpd/conf/httpd.confファイルに「Include」を使って上で作成した「httpd-proxy.conf」を呼び出すようにする

/etc/httpd/conf/httpd.confファイルに下記を追加

 	Include conf/extra/httpd-proxy.conf

httpdのリロード

/etc/rc.d/init.d/httpd reload

http:://ホスト名/hello/でブラウザからアクセス

52
57
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
52
57

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?