プロジェクト

全般

プロフィール

Tomcat8のインストール

Tomcat8をインストールし、Apacheと連携する

環境の準備

  • java(jdk)のインストール
    # yum install java java-devel
    
  • apacheのインストール
    yum install apache mod_ssl wget
    
  • 下記サイトからTomcatのバイナリの取得
    https://tomcat.apache.org/download-80.cgi
    # mkdir /usr/local/work
    # cd /usr/local/work
    # wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.0.23/bin/apache-tomcat-8.0.23.tar.gz
    

Tomcatの導入

  • アーカイブを展開・配置する
    # tar xzf apache-tomcat-8.0.23.tar.gz
    
  • 実行ユーザを作成・設定する
    # useradd -s /sbin/nologin tomcat
    # chown -R tomcat.tomcat apache-tomcat-8.0.23
    
  • 実行ディレクトリに移動する
    # mv apache-tomcat-8.0.23 /usr/local/tomcat
    
  • サービス設定ファイルの作成
    • CentOS6以前
      # cat /etc/init.d/tomcat
      #!/bin/bash
      
      # Tomcat8: Start/Stop Tomcat 8
      #
      # chkconfig: - 90 10
      # description: Tomcat is a Java application Server.
      
      . /etc/init.d/functions
      . /etc/sysconfig/network
      
      CATALINA_HOME=/usr/local/tomcat
      TOMCAT_USER=tomcat
      
      LOCKFILE=/var/lock/subsys/tomcat
      
      RETVAL=0
      start(){
          echo "Starting Tomcat: " 
          su - $TOMCAT_USER -c "$CATALINA_HOME/bin/startup.sh" --shell=/bin/bash
          RETVAL=$?
          echo
          [ $RETVAL -eq 0 ] && touch $LOCKFILE
          return $RETVAL
      }
      
      stop(){
          echo "Shutting down Tomcat: " 
          $CATALINA_HOME/bin/shutdown.sh
          RETVAL=$?
          echo
          [ $RETVAL -eq 0 ] && rm -f $LOCKFILE
          return $RETVAL
      }
      
      case "$1" in
          start)
              start
              ;;
          stop)
              stop
              ;;
          restart)
              stop
              start
              ;;
          *)
              echo $"Usage: $0 {start|stop|restart}" 
              exit 1
              ;;
      esac
      exit $?
      
    • CentOS7以降
      # vi /etc/systemd/system/tomcat.service
      -----------------------------
      [Unit]
      Description=Apache Tomcat 8
      After=network.target
      
      [Service]
      User=tomcat
      Group=tomcat
      Type=oneshot
      PIDFile=/usr/local/tomcat/tomcat.pid
      RemainAfterExit=yes
      
      ExecStart=/usr/local/tomcat/bin/startup.sh
      ExecStop=/usr/local/tomcat/bin/shutdown.sh
      ExecReStart=/usr/local/tomcat/bin/shutdown.sh;/usr/local/tomcat/bin/startup.sh
      
      [Install]
      WantedBy=multi-user.target
      
  • Tomcat設定ファイルの修正
    # vi /usr/local/tomcat/conf/server.xml
    -----------------------------
    # 下記をコメントアウト
    <!--
        <Connector port="8080" protocol="HTTP/1.1" 
                   connectionTimeout="20000" 
                   redirectPort="8443" />
    -->
    
    …
    …
    下記のコメントアウトを外し変更
        <Connector protocol="AJP/1.3" 
                    address="0.0.0.0" ←IPv4にする
                    port="8009" 
                    redirectPort="8443" 
                    secretRequired="false"/> ←追加
    
  • サービス登録・起動
    • CentOS6以前
      # chmod 755 /etc/init.d/tomcat
      # chkconfig tomcat on
      # service tomcat start
      
    • CentOS7以降
      # systemctl enable tomcat
      # systemctl start tomcat
      
  • エラーとならないこと

Apacheと連携

  • 設定ファイルの作成
    # vi /etc/httpd/conf.d/tomcat.conf
    -----------------------------
    <Location />
    ProxyPass               /        ajp://localhost:8009/
    ProxyPassReverse        /        ajp://localhost:8009/
    </Location>
    
  • サービス登録・起動
    # systemctl enable httpd
    # systemctl start httpd
    
  • エラーとならないこと

動作確認

  • 次のサイトにアクセスしてTomcatのページが表示できること
    http://サーバのIPアドレス
    

    ※サブディレクトリを切る場合にはtomcat側にも設定が必要となる

以上