はじめに
Linuxサーバ環境として定番のCentOS7上に、Apache Tomcat 9が動作するWebサーバ環境を構築していきたいと思います。
この記事で紹介するのは以下の環境構築です。
- Java 8 (OpenJDK / OracleJDK)
- Apache Tomcat 9 (on Apache 2.4)
更新履歴
2018.6.19 Tomcat 9 向けに少し追記
前回までの記事はこちら
前回までの記事で、GCP上にCentOS開発サーバを構築する手順をまとめていますので、併せてお読みください。
- GCPに共通鍵を追加する手順まとめ
- GCP Compute Engineを使ってLinuxサーバを始める
- Cent OS 7開発用サーバを初期設定する
- Cent OS 7上でApache/PHP開発環境を構築する
インストール手順
作業方針
- 可能な部分はパッケージマネージャyumを使います。
- できる限り最新版にするため公式パッケージをインストールします。
- Apache Tomcat単体ではなく、HTTPフロントサーバとしてApacheを使用します。
- 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 9.0.8をダウンロードしますので、適宜読み替えてください。
今回のインストール先は"/usr/tomcat9"とします。
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の初期インストールは完了です。