GNU/Linux >> Linux の 問題 >  >> Ubuntu

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

このチュートリアルでは、Ubuntu20.04にTomcat9をインストールして構成する方法について説明します。

Apache Tomcatは、オープンソースのWebサーバーおよびJavaサーブレットコンテナです。これは、JavaベースのWebサイトおよびアプリケーションを構築するための最も一般的な選択肢の1つです。 Tomcatは軽量で使いやすく、アドオンの堅牢なエコシステムを備えています。

Javaのインストール#

Tomcat 9では、JavaSE8以降がシステムにインストールされている必要があります。 Javaプラットフォームのオープンソース実装であるOpenJDK11をインストールします。

rootまたはsudo権限を持つユーザーまたはrootとして次のコマンドを実行して、パッケージインデックスを更新し、OpenJDK11JDKパッケージをインストールします。

sudo apt updatesudo apt install openjdk-11-jdk

インストールが完了したら、Javaのバージョンを確認して確認します。

java -version

出力は次のようになります。

openjdk version "11.0.7" 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-3ubuntu1)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-3ubuntu1, mixed mode, sharing)
システムユーザーの作成#

rootユーザーでTomcatを実行することは、セキュリティ上のリスクです。ホームディレクトリ/opt/tomcatを使用して新しいシステムユーザーとグループを作成します Tomcatサービスを実行します。これを行うには、次のコマンドを入力します。

sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat
Tomcatのダウンロード#

Tomcatバイナリ配布は、Tomcatダウンロードページからダウンロードできます。

執筆時点では、Tomcatの最新バージョンは9.0.35です。 。次の手順に進む前に、Tomcat 9のダウンロードページをチェックして、新しいバージョンが利用可能かどうかを確認してください。

wgetを使用する Tomcatzipファイルを/tmpにダウンロードします ディレクトリ:

VERSION=9.0.35wget https://www-eu.apache.org/dist/tomcat/tomcat-9/v${VERSION}/bin/apache-tomcat-${VERSION}.tar.gz -P /tmp

ダウンロードが完了したら、tarファイルを/opt/tomcatに抽出します。 ディレクトリ::

sudo tar -xf /tmp/apache-tomcat-${VERSION}.tar.gz -C /opt/tomcat/

Tomcatは、セキュリティパッチと新機能で定期的に更新されます。バージョンと更新をより細かく制御するために、latestと呼ばれるシンボリックリンクを作成します 、Tomcatインストールディレクトリを指します:

sudo ln -s /opt/tomcat/apache-tomcat-${VERSION} /opt/tomcat/latest

後でTomcatをアップグレードするときに、新しいバージョンを解凍し、それを指すようにシンボリックリンクを変更します。

以前に作成されたシステムユーザーは、Tomcatインストールディレクトリにアクセスできる必要があります。ディレクトリの所有権をユーザーとグループのTomcatに変更します:

sudo chown -R tomcat: /opt/tomcat

Tomcatのbin内のシェルスクリプト ディレクトリは実行可能である必要があります:

sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'

これらのスクリプトは、Tomcatインスタンスを開始、停止、およびその他の方法で管理するために使用されます。

SystemDユニットファイルの作成#

シェルスクリプトを使用してTomcatサーバーを起動および停止する代わりに、サービスとして実行するように設定します。

テキストエディタを開き、tomcat.serviceを作成します /etc/systemd/system/内のユニットファイル ディレクトリ:

sudo nano /etc/systemd/system/tomcat.service

次の構成を貼り付けます:

/etc/systemd/system/tomcat.service
[Unit]
Description=Tomcat 9 servlet container
After=network.target

[Service]
Type=forking

User=tomcat
Group=tomcat

Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom -Djava.awt.headless=true"

Environment="CATALINA_BASE=/opt/tomcat/latest"
Environment="CATALINA_HOME=/opt/tomcat/latest"
Environment="CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"

ExecStart=/opt/tomcat/latest/bin/startup.sh
ExecStop=/opt/tomcat/latest/bin/shutdown.sh

[Install]
WantedBy=multi-user.target
JAVA_HOMEを変更します Javaインストールへのパスが異なる場合は変数。

ファイルを保存して閉じ、systemdに新しいユニットファイルが存在することを通知します:

sudo systemctl daemon-reload

Tomcatサービスを有効にして開始します:

sudo systemctl enable --now tomcat

サービスステータスを確認します:

sudo systemctl status tomcat

出力には、Tomcatサーバーが有効で実行されていることが示されます。

● tomcat.service - Tomcat 9 servlet container
     Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2020-05-25 17:58:37 UTC; 4s ago
    Process: 5342 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status=0/SUCCESS)
   Main PID: 5362 (java)
...

他のsystemdサービスと同じようにTomcatを開始、停止、再起動できます:

sudo systemctl start tomcatsudo systemctl stop tomcatsudo systemctl restart tomcat
ファイアウォールの構成#

サーバーがファイアウォールで保護されていて、ローカルネットワークの外部からTomcatにアクセスする場合は、ポート8080を開く必要があります。 。

次のコマンドを使用して、必要なポートを開きます。

sudo ufw allow 8080/tcp
一般に、Tomcatを実稼働環境で実行する場合は、ロードバランサーまたはリバースプロキシを使用する必要があります。ポート8080へのアクセスを許可することをお勧めします。 内部ネットワークからのみ。

Tomcat Web管理インターフェースの構成#

この時点で、ポート8080のWebブラウザでTomcatにアクセスできるはずです。 。まだユーザーを作成していないため、Web管理インターフェイスにアクセスできません。

Tomcatのユーザーとロールは、tomcat-users.xmlで定義されています。 ファイル。このファイルは、ユーザーまたはロールの作成方法を示すコメントと例を含むテンプレートです。

この例では、「admin-gui」と「manager-gui」の役割を持つユーザーを作成します。 「admin-gui」ロールを使用すると、ユーザーは/host-manager/htmlにアクセスできます。 URLを作成し、仮想ホストを作成、削除、その他の方法で管理します。 「manager-gui」ロールを使用すると、ユーザーは/host-manager/htmlを介してコンテナー全体を再起動しなくても、Webアプリケーションをデプロイおよびアンデプロイできます。 インターフェイス。

tomcat-users.xmlを開きます 以下に示すように、ファイルを作成して新しいユーザーを作成します。

sudo nano /opt/tomcat/latest/conf/tomcat-users.xml
/opt/tomcat/latest/conf/tomcat-users.xml
<tomcat-users>
<!--
    Comments
-->
   <role rolename="admin-gui"/>
   <role rolename="manager-gui"/>
   <user username="admin" password="admin_password" roles="admin-gui,manager-gui"/>
</tomcat-users>

ユーザー名とパスワードをより安全なものに変更してください。

デフォルトでは、Tomcat Web管理インターフェースは、ローカルホストからのみManagerおよびHostManagerアプリへのアクセスを許可するように構成されています。リモートIPからWebインターフェイスにアクセスするには、これらの制限を削除する必要があります。これはセキュリティにさまざまな影響を与える可能性があるため、本番システムにはお勧めしません。

どこからでもWebインターフェイスにアクセスできるようにするには、次の2つのファイルを開き、黄色で強調表示されている行にコメントを付けるか削除します。

Managerアプリの場合:

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

Host Managerアプリの場合:

sudo nano /opt/tomcat/latest/webapps/host-manager/META-INF/context.xml
context.xml
<Context antiResourceLocking="false" privileged="true" >
<!--
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
</Context>

特定のIPからのみWebインターフェースにアクセスする場合は、ブロックにコメントを付ける代わりに、パブリックIPをリストに追加します。

パブリックIPが41.41.41.41だとします そのIPからのアクセスのみを許可したい場合:

context.xml
<Context antiResourceLocking="false" privileged="true" >
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|41.41.41.41" />
</Context>

許可されるIPアドレスのリストは、縦棒|で区切られたリストです。 。単一のIPアドレスを追加することも、正規表現を使用することもできます。

完了したら、Tomcatサービスを再起動して、変更を有効にします。

sudo systemctl restart tomcat
Tomcatのインストールをテストする#

ブラウザを開き、次のように入力します:http://<your_domain_or_IP_address>:8080

インストールが成功すると、次のような画面が表示されます。

Tomcat Webアプリケーションマネージャーは、http://<your_domain_or_IP_address>:8080/manager/htmlで入手できます。 。

Tomcat仮想ホストマネージャーは、http://<your_domain_or_IP_address>:8080/host-manager/htmlで入手できます。 。


Ubuntu
  1. Ubuntu18.04にTomcatをインストールする方法

  2. Ubuntu14.04にTomcat8をインストールする方法

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

  1. CentOS7にTomcat9をインストールする方法

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

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

  1. Ubuntu18.04にMariaDB10.4をインストールする方法

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

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