ゆるふわエンジニアのブログ

行ったこと、調べたこと等をつらつらと書いていくかもしれません。

Ubuntu18.04にTomcat9をインストールする方法

Ubuntu18.04にTomcat9をインストールする方法を備忘録として残しておきます。

本記事の内容です。

対象読者

Ubuntu18.04にTomcat9をインストールしたい方。
多分、他バージョンのUbuntuおよびTomcatの組み合わせでも参考にはなると思います。

本記事の内容を試した環境

OS: Ubuntu 18.04
Tomcat: 9.0.14

上記環境はVirtualBox上で構築しています。

Tomcatインストール

一般的と思われる方法および設定でインストールします。

インストール用のスクリプトファイル作成

任意のディレクトリで
install-tomcat9.sh
というファイルを作成し、中に下記のコードを貼り付けて保存します。

#!/bin/bash
# Declare variables.
TomcatMajorVersion=9
TomcatVersionFull="${TomcatMajorVersion}.0.14"
TomcatDirectory="apache-tomcat-${TomcatVersionFull}"
TomcatInstaller="${TomcatDirectory}.tar.gz"

# Uninstall tomcat.
rm -Rf /opt/$TomcatDirectory
rm /etc/systemd/system/tomcat.service
rm -Rf ./$TomcatDirectory
rm $TomcatInstaller

# Add tomcat user.
useradd -M tomcat

# Tomcat download and deploy.
wget http://ftp.yz.yamagata-u.ac.jp/pub/network/apache/tomcat/tomcat-$TomcatMajorVersion/v$TomcatVersionFull/bin/$TomcatInstaller
tar -xzvf ./${TomcatInstaller}
rm $TomcatInstaller
mv ./$TomcatDirectory /opt
chown -R tomcat:tomcat /opt/$TomcatDirectory

# Service create and registration.
cat << EOS > /etc/systemd/system/tomcat.service
[Unit]
Description=Apache Tomcat $TomcatMajorVersion
After=network.target

[Service]
User=tomcat
Group=tomcat
Type=oneshot
PIDFile=/opt/$TomcatDirectory/tomcat.pid
RemainAfterExit=yes

ExecStart=/opt/$TomcatDirectory/bin/startup.sh
ExecStop=/opt/$TomcatDirectory/bin/shutdown.sh
ExecReStart=/opt/$TomcatDirectory/bin/shutdown.sh;/opt/$TomcatDirectory/bin/startup.sh

[Install]
WantedBy=multi-user.target
EOS

# Change tomcat.service's permission.
chmod 755 /etc/systemd/system/tomcat.service

# Setting tomcat service auto start.
systemctl enable tomcat

# Start tomcat service.
systemctl start tomcat

スクリプトファイルを実行しインストール

下記のコマンドで作成したスクリプトファイルを実行し、Tomcatをインストールします。
この時、ログインしているユーザにsudo実行権限を与えていないとエラーになりますので注意してください。

sudo sh install-tomcat9.sh

他バージョンのTomcatをインストールする場合

下記の変数宣言にて記述しているバージョン情報を変更すると、他バージョンのインストールにも対応できると思います。
ただし、複数バージョンのTomcatをインストールすることは考慮していませんので、注意してください。

# Declare valiables.
TomcatMajorVersion=9
TomcatVersionFull="${TomcatMajorVersion}.0.14"

参考にさせていただいたページ

weblabo.oscasierra.net

何故Dockerイメージおよびコンテナを使わないのか?

Visual Studio Code(VS Code)の拡張機能であるTomcat for JavaからDockerコンテナ上のTomcatフォルダを指定する方法がわからなかったからです。
どなたかご存知の方は教えていただけると嬉しいです。