Debian10にApacheTomcat9をインストールする方法


Apache Tomcatは、Javaベースのアプリケーションを提供するために使用される、無料で成熟した堅牢で人気のあるWebアプリケーションサーバーソフトウェアです。これは、Apache Software Foundation(ASF)によって開発されたJavaサーブレット、JavaServer Pages(JSP)、Java式言語、およびJavaWebSocketテクノロジーのオープンソース実装です。

このチュートリアルでは、Debian 10LinuxサーバーにTomcat9の最新リリースをインストールして構成するプロセスについて説明します。

このチュートリアルを開始する前に、サーバー上でsudo権限を持つroot以外のユーザーアカウントを持っていることを確認してください。そうでない場合は、Ubuntu/Debianで新しいSudoユーザーを作成する方法に関するガイドを使用してセットアップできます。

ステップ1:Debian10にJavaをインストールする

Tomcat9の最新リリースをDebian10サーバーにインストールするには、Java Webアプリケーションコードを実行できるように、サーバーにJavaがインストールされている必要があります。

まず、図のようにaptコマンドを使用してシステムソフトウェアパッケージのインデックスを更新します。

$ sudo apt update

次に、aptコマンドを使用してJava DevelopmentKitパッケージをインストールします。

$ sudo apt install default-jdk

Javaのインストールが完了したら、次のコマンドを使用して、システムにインストールされているJavaのバージョンを確認します。

$ java -version

ステップ2:Debian10にTomcatをインストールする

セキュリティ上の理由から、Tomcatは非特権ユーザー(つまり、rootではない)によってインストールおよび実行される必要があります。/opt/tomcatディレクトリ(Tomcatインストール)の下にTomcatサービスを実行するための新しいtomcatグループとユーザーを作成します。

$ sudo mkdir /opt/tomcat
$ sudo groupadd tomcat
$ sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat

tomcatユーザーを設定したら、Tomcat 9のダウンロードページから最新バージョンのTomcat9(つまり、9.0.30)をダウンロードするか、次のcurlコマンドラインツールを使用してtarballをダウンロードし、アーカイブを/ opt/tomcatディレクトリに抽出します。 。

$ curl -O http://www-eu.apache.org/dist/tomcat/tomcat-9/v9.0.30/bin/apache-tomcat-9.0.30.tar.gz
$ sudo tar xzvf apache-tomcat-9*tar.gz -C /opt/tomcat --strip-components=1

次に、TomcatユーザーにTomcatインストール/ opt/tomcatディレクトリへのアクセス権を割り当てます。

$ cd /opt/tomcat
$ sudo chgrp -R tomcat /opt/tomcat
$ sudo chmod -R g+r conf
$ sudo chmod g+x conf
$ sudo chown -R tomcat webapps/ work/ temp/ logs/

ステップ3:Tomcatsystemdサービスファイルを作成する

新しいsystemdサービスファイルを作成して、Tomcatをsystemdのサービスとして管理および実行します。サービスファイルを作成するには、次のコマンドを使用して JAVA_HOME と呼ばれる、Javaがインストールされている場所を知っている必要があります。

$ sudo update-java-alternatives -l

上記の出力から、 JAVA_HOME は次のようになります。

/usr/lib/jvm/java-1.11.0-openjdk-amd64

JAVA_HOME がわかったら、を実行して/ etc/systemd/systemディレクトリに tomcat.service というsystemdサービスファイルを作成できます。

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

次の内容を 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

次に、systemdをリロードして新しい変更を適用し、 tomcat.service ファイルを認識できるようにします。

$ sudo systemctl daemon-reload

最後に、次のコマンドを実行して、Tomcatサービスのステータスを開始および確認できます。

$ sudo systemctl start tomcat
$ systemctl status tomcat
$ systemctl enable tomcat

手順4:TomcatManagerとHostManagerのログインを有効にする

Tomcatに付属のmanager-guiおよびadmin-guiWebアプリにアクセスするには、図のようにtomcat-users.xmlファイルを編集してTomcatサーバーへのログインを有効にする必要があります。

$ sudo nano /opt/tomcat/conf/tomcat-users.xml

タグ内に、次の構成を、示されている正しいユーザー名とパスワードで追加します。

<role rolename="admin-gui,manager-gui"/> 
<user username="admin" password="password" roles="admin-gui,manager-gui"/>

上記の構成は、「tecmint123」のパスワードを持つ「admin」という名前のユーザーにadmin-guiおよびmanager-guiロールを追加することを意味します。

手順5:TomcatManagerおよびHostManagerへのリモートログインを有効にする

セキュリティ上の理由から、TomcatManagerおよびHostManagerアプリへのアクセスは、デフォルトでローカルホスト(デプロイされているサーバー)にロックダウンされています。

ただし、以下で説明するように、特定のIPアドレスまたは任意のホストまたはネットワークからTomcatManagerおよびHostManagerアプリへのリモートアクセスを有効にすることができます。

Tomcat Managerアプリの場合は、次のように入力します。

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

Host Managerアプリの場合は、次のように入力します。

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

内部で、IPアドレスの制限をコメントアウトして、任意のネットワークからのアクセスを許可します。

<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アドレスをリストに追加して、自分のIPアドレス192.168.0.103またはネットワーク(192.168.0.0)からのリモートアクセスを有効にします。

allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|192.168.0.103" />-->
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|192.168.0.*" />-->

ファイルを保存し、Tomcatサービスを再起動して、変更を有効に保ちます。

$ sudo systemctl restart tomcat

ステップ6:TomcatWebインターフェースにアクセスする

任意のブラウザからTomcatWebインターフェイスにアクセスするには、8080ポートを開いて、ファイアウォール上のTomcatサービスへのトラフィックを次のように入力できるようにする必要があります。

$ sudo ufw allow 8080

次に、サーバーのドメイン名またはIPアドレスに移動し、続いてブラウザのポート8080に移動して、TomcatWeb管理インターフェイスにアクセスします。

http://server_domain_or_IP:8080

以下のURLでマネージャーアプリにアクセスしましょう。アカウントの認証情報を入力する必要があります。

http://server_domain_or_IP:8080/manager/html

以下のURLでホストマネージャーにアクセスしましょう。アカウントの資格情報を入力する必要があります。

http://server_domain_or_IP:8080/host-manager/html/

それで全部です! Tomcatのインストールが完了しました。これで、JavaWebアプリケーションをデプロイして実行できます。ご質問やご意見がございましたら、下のコメントフォームからお問い合わせください。