JavaサーバーページコーディングやJavaサーブレットを含むWebページを実行したい場合は、Apache Tomcatを使用できます。これは、Apache Software FoundationによってリリースされたオープンソースのWebサーバーおよびサーブレットコンテナーです。
Tomcatは、独立した製品として使用するか、独自のWebサーバーを備えているか、またはApacheやIISなどの他のWebサーバーと組み合わせて使用できます。Tomcatの最新バージョンは9.0.14であり、Tomcat 8および8.5をベースにしてServlet 4.0、JSP 2.2を実装しています。
関連記事: CentOS/RHELにApache Tomcat 9をインストールする方法
新バージョンで以下の改善が行われました:
- HTTP/2のサポートを追加しました。
- JSSEコネクターでTLSサポートにOpenSSLを使用するサポートを追加しました。
- TLS仮想ホスト(SNI)のサポートを追加しました。
このチュートリアルでは、Apache Tomcat 9をUbuntu 18.10および古いバージョンのUbuntuにインストールする方法を説明します。
ステップ1:Javaのインストール
Java Webアプリケーションを実行するには、サーバーにJavaがインストールされている必要があります。その要件を満たすために、次に示すようにOpenJDKをインストールします。
$ sudo apt update $ sudo apt install default-jdk
ステップ2:Tomcatユーザーの作成
Tomcatは特権のないユーザー、つまりrootではないユーザーで実行する必要があります。そのため、サービスを実行するtomcatユーザーとグループを作成します。まず、tomcatグループを作成します:
$ sudo groupadd tomcat
次に、tomcatグループのメンバーであるtomcatユーザーを作成します。このユーザーのホームディレクトリは/opt/tomcatに設定されます。このユーザーのシェルは/bin/falseに設定されます:
$ sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
次のステップに進み、Tomcatをダウンロードする準備が整いました。
ステップ3:Apache Tomcatのインストール
最新の利用可能なパッケージをダウンロードするには、Tomcatのダウンロードページにアクセスして最新バージョンを取得します。
このチュートリアルの執筆時点では、最新バージョンのTomcatは9.0.14です。そのバージョンをダウンロードするには、現在のディレクトリを別のものに変更します。たとえば、/tmpを使用できます:
# cd /tmp
そして、wgetコマンドを使用してTomcatアーカイブをダウンロードします:
$ wget http://apache.cbox.biz/tomcat/tomcat-9/v9.0.14/bin/apache-tomcat-9.0.14.tar.gz $ wget https://www.apache.org/dist/tomcat/tomcat-9/v9.0.14/bin/apache-tomcat-9.0.14.tar.gz.sha512
ファイルのsha512サムを確認したい場合は、次のコマンドを実行できます:
$ sha512sum apache-tomcat-9.0.14.tar.gz $ cat apache-tomcat-9.0.14.tar.gz.sha512
両方のファイルの結果として得られる値(ハッシュ)は同じである必要があります。
前述の通り、Tomcatを/opt/tomcatにインストールします。そのディレクトリを作成する必要があります:
$ sudo mkdir /opt/tomcat
そして、その新しいディレクトリにダウンロードしたパッケージを展開できます。
$ sudo tar xzvf apache-tomcat-9.0.14.tar.gz -C /opt/tomcat --strip-components=1
今、/opt/tomcatに移動し、フォルダの所有権とアクセス権を更新します:
# cd /opt/tomcat
/opt/tomcatのグループ所有者をtomcatに設定します:
$ sudo chgrp -R tomcat /opt/tomcat
次に、confディレクトリのtomcatグループの読み取りアクセスを更新し、ディレクトリに実行権を設定します:
$ sudo chmod -R g+r conf $ sudo chmod g+x conf
次に、webapps、work、temp、およびlogsディレクトリの所有者をtomcatユーザに設定します:
$ sudo chown -R tomcat webapps/ work/ temp/ logs/
適切なアクセス権と所有権が設定されましたので、Tomcatプロセスを管理するのに役立つsystemdスタートファイルを作成する準備が整いました。
ステップ4: Tomcat用のSystemDサービスファイルの作成
Tomcatをサービスとして実行したいので、プロセスを簡単に管理できるファイルが必要です。そのために、systemdサービスファイルを作成します。Tomcatはシステム上のJavaの場所を知る必要があります。
その場所を見つけるには、次のコマンドを使用します:
$ sudo update-java-alternatives -l
そのコマンドの出力にはJAVA_HOMEの場所が表示されます。

この情報を使用して、Tomcatサービスファイルを作成する準備が整いました。
$ sudo vim /etc/systemd/system/tomcat.service
以下のコードをファイルに貼り付けます:
[Unit] Description=Apache Tomcat Web Application Container After=network.target [Service] Type=forking Environment=JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64 Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid Environment=CATALINA_HOME=/opt/tomcat Environment=CATALINA_BASE=/opt/tomcat Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC' Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom' ExecStart=/opt/tomcat/bin/startup.sh ExecStop=/opt/tomcat/bin/shutdown.sh User=tomcat Group=tomcat UMask=0007 RestartSec=10 Restart=always [Install] WantedBy=multi-user.target
JAVA_HOMEをシステムのそれに設定してください。準備ができたら、ファイルを保存して閉じます。次に、次のコマンドを使用して、systemdデーモンをリロードして新しいサービスファイルを見つけることができるようにします:
$ sudo systemctl daemon-reload
その後、Tomcatサービスを開始します:
$ sudo systemctl start tomcat
サービスの状態を確認できます:
$ sudo systemctl status tomcat

ブラウザーでシステムのIPアドレスを使用して、Tomcatをテストできます。その後、デフォルトのポート8080に続けてサービスを実行できます。
http://ip-address:8080
表示される結果は、以下の画像と類似しているはずです:

上記の出力が表示されない場合は、次のようにファイアウォールでポート8080を許可する必要がある場合があります。
$ sudo ufw allow 8080
システムの起動時にTomcatを起動する場合は、次のコマンドを実行してください:
$ systemctl enable tomcat
ステップ5:Apache Tomcatの設定
Tomcatには事前にインストールされているWebマネージャーアプリがあります。これを使用するには、tomcat-users.xmlファイルで認証を設定する必要があります。お気に入りのテキストエディターでそのファイルを開いて編集します:
$ sudo vim /opt/tomcat/conf/tomcat-users.xml
アクセス可能なユーザーを追加します。managerとadminのインターフェースにアクセスできるようにするためのユーザーを構成するには、<tomcat-users> </tomcat-users>
タグ間に次の行を追加します:
<user username="Username" password="Password" roles="manager-gui,admin-gui"/>
次を変更してください:
- ユーザー名 – 認証に使用するユーザー。
- パスワード – 認証に使用するパスワード。

デフォルトでは、Host ManagerとManagerへのアクセスが制限されているため、これらの制限を削除または変更する必要があります。これらの変更を行うには、次のファイルを読み込むことができます:
Managerアプリ用:
$ sudo vim /opt/tomcat/webapps/manager/META-INF/context.xml
Host managerアプリ用:
$ sudo vim /opt/tomcat/webapps/host-manager/META-INF/context.xml
これらのファイルの中には、IP制限のコメントアウトをするか、公開IPアドレスを許可することができます。このチュートリアルの目的で、私は次の行をコメントアウトしました:

変更を反映させるために、tomcatサービスをリロードしてください:
$ sudo systemctl restart tomcat
次に、managerアプリにアクセスしてテストできます。http://ipaddress:8080/manager/。ユーザー名とパスワードを求められたら、以前に構成したものを使用してください。その後に表示されるインタフェースは、次のようになります:

ホストマネージャにアクセスするには、http://ip-address:8080/host-manager/を使用できます。

仮想ホストマネージャを使用して、Tomcatアプリケーションの仮想ホストを作成できます。
ステップ6: テストファイルを作成してApache Tomcatをテストする
すべてがスムーズに動作しているかを確認するために、/opt/tomcat/webapps/ROOT/ディレクトリ内にテストファイルを作成できます。
次のようなファイルを作成しましょう:
$ sudo vim /opt/tomcat/webapps/ROOT/tecmint.jsp
そのファイルには次のコードを貼り付けます:
<html> <head> <title>Tecmint post:TomcatServer</title> </head> <body> <START OF JAVA CODES> <% out.println("Hello World! I am running my first JSP Application"); out.println("<BR>Tecmint is an Awesome online Linux Resource."); %> <END OF JAVA CODES> </body> </html>
ファイルを保存し、所有権を設定します。
$ sudo chown tomcat: /opt/tomcat/apache-tomcat-8.5.14/webapps/ROOT/tecmint.jsp
そのファイルをブラウザでロードしてください。http://ip-address:8080/tecmint.jsp。

以上です!Apache Tomcatサーバーのセットアップが完了し、最初のJavaコードが実行されました。このプロセスが簡単でわかりやすかったことを願っています。問題が発生した場合は、以下のコメントフォームを使用して問題を共有してください。
Source:
https://www.tecmint.com/install-apache-tomcat-in-ubuntu/