UbuntuにApache Tomcatをインストールする方法

JavaサーバーページコーディングやJavaサーブレットを含むWebページを実行したい場合は、Apache Tomcatを使用できます。これは、Apache Software FoundationによってリリースされたオープンソースのWebサーバーおよびサーブレットコンテナーです。

Tomcatは、独立した製品として使用するか、独自のWebサーバーを備えているか、またはApacheIISなどの他の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 9Ubuntu 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のダウンロードページにアクセスして最新バージョンを取得します。

このチュートリアルの執筆時点では、最新バージョンのTomcat9.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

次に、webappsworktemp、および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の場所が表示されます。

Find 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
Verify Apache Tomcat Status

ブラウザーでシステムのIPアドレスを使用して、Tomcatをテストできます。その後、デフォルトのポート8080に続けてサービスを実行できます。

http://ip-address:8080

表示される結果は、以下の画像と類似しているはずです:

Apache Tomcat Web Page

上記の出力が表示されない場合は、次のようにファイアウォールでポート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

アクセス可能なユーザーを追加します。manageradminのインターフェースにアクセスできるようにするためのユーザーを構成するには、<tomcat-users> </tomcat-users>タグ間に次の行を追加します:

<user username="Username" password="Password" roles="manager-gui,admin-gui"/>

次を変更してください:

  • ユーザー名 – 認証に使用するユーザー。
  • パスワード – 認証に使用するパスワード。
Configure Apache Tomcat

デフォルトでは、Host ManagerManagerへのアクセスが制限されているため、これらの制限を削除または変更する必要があります。これらの変更を行うには、次のファイルを読み込むことができます:

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アドレスを許可することができます。このチュートリアルの目的で、私は次の行をコメントアウトしました:

Allow Apache Tomcat Access

変更を反映させるために、tomcatサービスをリロードしてください:

$ sudo systemctl restart tomcat 


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

Access Apache Tomcat Manager

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

Access Apache Tomcat Virtual 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

Test Apache Tomcat

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

Source:
https://www.tecmint.com/install-apache-tomcat-in-ubuntu/