Java
CentOS
Apache
Tomcat

Cent OS 7上でApache/Tomcat開発環境を構築する

はじめに

Linuxサーバ環境として定番のCentOS7上に、Apache Tomcat 9が動作するWebサーバ環境を構築していきたいと思います。

この記事で紹介するのは以下の環境構築です。
- Java 8 (OpenJDK / OracleJDK)
- Apache Tomcat 9 (on Apache 2.4)

更新履歴

2018.6.19 Tomcat 9 向けに少し追記

前回までの記事はこちら

前回までの記事で、GCP上にCentOS開発サーバを構築する手順をまとめていますので、併せてお読みください。

インストール手順

作業方針

  1. 可能な部分はパッケージマネージャyumを使います。
  2. できる限り最新版にするため公式パッケージをインストールします。
  3. Apache Tomcat単体ではなく、HTTPフロントサーバとしてApacheを使用します。
  4. JVM/JDKはOracle社のものを使います。

事前準備

本手順ではリモートファイルのダウンロードにwgetを使用しています。
必要に応じて先にインストールします。

yum -y install wget

Apache 2.4インストール

この項目は前回と同様の手順になりますので、以下をご参照ください。
Cent OS 7上でApache/PHP開発環境を構築する

JDKインストール

OpenJDKを使用する場合

以下のコマンドでJDKをインストールします。

yum install java-1.8.0-openjdk-devel

OracleJDKを使用する場合

ダウンロード

まず、以下URLよりLinux x64向けの最新版パッケージ(jdk-8uxxx-linux-x64.tar.gz)をローカルにダウンロードしてください。
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

プログラム配置

以下の手順では、Java8u171を元に説明しますので、適宜バージョン番号を読み替えてください。

mkdir /usr/java/
cd /usr/java/
tar zxf /path/to/jdk-8u171-linux-x64.tar.gz
ln -s jdk1.8.0_171 latest
echo -e "export JAVA_HOME=/usr/java/latest\nPATH=\$PATH:\$JAVA_HOME/bin" > /etc/profile.d/java.sh
source /etc/profile.d/java.sh

実行パス設定

デフォルトでどのjavaコマンドを起動するか、alternativesコマンドを使って設定します。

alternatives --install /usr/bin/java java /usr/java/latest/bin/java 9999
alternatives --config java
alternatives --install /usr/bin/javac javac /usr/java/latest/bin/javac 9999
alternatives --config javac

設定が完了したら以下のコマンドで、先ほどインストールしたバージョンが実行されるか確認しましょう。

java -version
javac -version

Apache Tomcat 9 インストール

Apache Tomcatも同様に最新版を公式サイトからダウンロードします。

ダウンロードと展開

以下の例では現在の最新版Apache Tomcat 8.5.23をダウンロードしますので、適宜読み替えてください。
今回のインストール先は"/usr/tomcat8"とします。

cd /usr/local/src
wget http://ftp.jaist.ac.jp/pub/apache/tomcat/tomcat-9/v9.0.8/bin/apache-tomcat-9.0.8.tar.gz
tar zxf apache-tomcat-9.0.8.tar.gz
mv apache-tomcat-9.0.8 /usr/tomcat9

基本設定

以下のコマンドを使い、環境変数を設定しましょう。

echo -e "export CATALINA_HOME=/usr/tomcat9\nexport CATALINA_BASE=/usr/tomcat9" > /etc/profile.d/tomcat.sh
source /etc/profile.d/tomcat.sh

動作確認

以下のコマンドでバージョン情報と実行JVM環境を確認する事ができます。

/usr/tomcat9/bin/version.sh 

実行結果が以下のようになるのを確認しましょう。

Using CATALINA_BASE:   /usr/tomcat9
Using CATALINA_HOME:   /usr/tomcat9
Using CATALINA_TMPDIR: /usr/tomcat9/temp
Using JRE_HOME:        /
Using CLASSPATH:       /usr/tomcat9/bin/bootstrap.jar:/usr/tomcat9/bin/tomcat-juli.jar
Server version: Apache Tomcat/9.0.8
Server built:   Apr 27 2018 19:32:00 UTC
Server number:  9.0.8.0
OS Name:        Linux
OS Version:     3.10.0-862.3.2.el7.x86_64
Architecture:   amd64
JVM Version:    1.8.0_171-b10
JVM Vendor:     Oracle Corporation

ユーザ作成

以下のコマンドで、Apache Tomcatを実行するためのユーザを作成します。

useradd -M -d /usr/tomcat9 tomcat
chown -R tomcat:tomcat /usr/tomcat9

自動起動設定

以下のコマンドでsystemctl起動スクリプトを手動生成します。

echo "[Unit]
Description=Apache Tomcat Servlet Container
After=syslog.target network.target

[Service]
Type=forking
User=tomcat
Group=tomcat
Environment=CATALINA_BASE=/usr/tomcat9
Environment=CATALINA_HOME=/usr/tomcat9
ExecStart=$CATALINA_HOME/bin/startup.sh
ExecStop=$CATALINA_HOME/bin/shutdown.sh
ExecReStart=$CATALINA_HOME/bin/shutdown.sh;$CATALINA_HOME/bin/startup.sh
KillMode=none

[Install]
WantedBy=multi-user.target
" > /usr/lib/systemd/system/tomcat9.service

起動/終了は以下のようなコマンドで行います。

# 起動
systemctl start tomcat9
# 終了
systemctl stop tomcat9
# 再起動
systemctl restart tomcat9

設定完了後は以下コマンドで自動起動を設定します。

systemctl enable tomcat9

Apache → Tomcat連携設定

ApacheからTomcatへリクエストを受け渡すには、リバースプロキシを設定する必要があります。

以下は"/"以下の全リクエストをTomcatに引き渡す設定例です。

echo "ProxyPass / ajp://localhost:8009/" > /etc/httpd/conf.d/proxy.conf

上記が完了したら、設定を反映するためにApacheを再起動しましょう。

systemctl restart httpd

上記の手順でTomcatの初期インストールは完了です。