ウェブサイト検索

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 アプリケーションを実行するには、Tomcat ではサーバーに Java がインストールされている必要があります。この要件を満たすために、 図に示すようにOpenJDK をインストールします。

sudo apt update
sudo apt install default-jdk

ステップ 2: Tomcat ユーザーの作成

セキュリティ上の理由から、Tomcat は非特権ユーザー、つまり非 root で実行する必要があります。このため、サービスを実行するユーザーとグループ Tomcat を作成します。まず、Tomcat グループを作成します。

sudo groupadd tomcat

次に、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

次に、Tomcat ユーザーを webappsworktemp、および logs ディレクトリの所有者にします。

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 アドレスに続いてサービスのデフォルト ポート 8080 を使用して、ブラウザで Tomcat をテストできるようになりました。

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

マネージャーおよび管理者インターフェースにアクセスできるユーザーを追加します。このようなユーザーを構成するには、 タグの間に次の行を追加します。

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

必ず変更してください:

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

デフォルトではホスト マネージャーマネージャーへのアクセスが制限されているため、これらの制限を削除または変更する必要があります。このような変更を加えるには、次のファイルをロードできます。

マネージャー アプリの場合:

sudo vim /opt/tomcat/webapps/manager/META-INF/context.xml

ホストマネージャーアプリの場合:

sudo vim /opt/tomcat/webapps/host-manager/META-INF/context.xml

これらのファイル内で、IP 制限をコメントするか、パブリック IP アドレスを許可することができます。このチュートリアルの目的のために、次の行をコメントしました。

変更を有効にするには、次のコマンドを使用して Tomcat サービスをリロードします。

sudo systemctl restart tomcat 


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 コードが実行されました。このプロセスが簡単で簡単だったことを願っています。何か問題に直面した場合は、下のコメント フォームから問題を共有してください。