LoginSignup
51
57

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/でブラウザからアクセス

51
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
51
57