Apache Tomcatは、Javaサーブレット、JavaServer Pages、Java式言語、およびJavaWebSocketテクノロジーのオープンソース実装です。これは、今日世界で最も広く採用されているアプリケーションおよびWebサーバーの1つです。 Tomcatは使いやすく、アドオンの堅牢なエコシステムを備えています。
このチュートリアルでは、Ubuntu18.04にTomcat9をインストールして構成する方法について説明します。同じ手順がUbuntu16.04と、LinuxMintやElementaryOSを含むUbuntuベースのディストリビューションにも当てはまります。
前提条件#
Ubuntuシステムにパッケージをインストールするには、sudo権限を持つユーザーとしてログインする必要があります。
ステップ1:OpenJDKをインストールする#
TomcatにはJavaがインストールされている必要があります。 Ubuntu18.04のデフォルトのJava開発およびランタイムであるOpenJDKをインストールします。
Javaのインストールは非常に簡単です。パッケージインデックスを更新することから始めます:
sudo apt update 次を実行してOpenJDKパッケージをインストールします:
sudo apt install default-jdk ステップ2:Tomcatユーザー番号を作成する#
 セキュリティ上の理由から、Tomcatはrootユーザーの下で実行しないでください。ホームディレクトリ/opt/tomcatを使用して新しいシステムユーザーとグループを作成します Tomcatサービスを実行します:
sudo useradd -r -m -U -d /opt/tomcat -s /bin/false tomcat ステップ3:Tomcatをインストールする#
Tomcat9の最新のバイナリリリースをTomcat9ダウンロードページからダウンロードします。
 執筆時点では、最新バージョンは9.0.27です。 。次の手順に進む前に、ダウンロードページで新しいバージョンを確認する必要があります。新しいバージョンがある場合は、コアのtar.gzへのリンクをコピーします BinaryDistributionsセクションにあるファイル。
 まず、/tmpにあるTomcatアーカイブをダウンロードします。 次のwgetを使用するディレクトリ コマンド:
wget http://www-eu.apache.org/dist/tomcat/tomcat-9/v9.0.27/bin/apache-tomcat-9.0.27.tar.gz -P /tmp 
 ダウンロードが完了したら、Tomcatアーカイブを抽出し、/opt/tomcatに移動します。 ディレクトリ:
sudo tar xf /tmp/apache-tomcat-9*.tar.gz -C /opt/tomcat 
 Tomcatのバージョンと更新をより詳細に制御するには、latestというシンボリックリンクを作成します。 これはTomcatインストールディレクトリを指します:
sudo ln -s /opt/tomcat/apache-tomcat-9.0.27 /opt/tomcat/latest 後でTomcatインスタンスをアップグレードする場合は、新しいバージョンを解凍し、シンボリックリンクを変更して最新バージョンを指すようにします。
 前のセクションで述べたように、Tomcatはtomcatの下で実行されます ユーザー。このユーザーは、Tomcatインストールディレクトリにアクセスできる必要があります。
次のコマンドは、ディレクトリの所有権をユーザーとグループのTomcatに変更します。
sudo chown -RH tomcat: /opt/tomcat/latest 
 bin内のスクリプト ディレクトリには実行可能フラグが必要です:
sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh' ステップ4: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/default-java"
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 start tomcat 次のコマンドでサービスステータスを確認します。
sudo systemctl status tomcat * tomcat.service - Tomcat 9 servlet container
   Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enabled)
   Active: active (running) since Wed 2018-09-05 15:45:28 PDT; 20s ago
  Process: 1582 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status=0/SUCCESS)
 Main PID: 1604 (java)
    Tasks: 47 (limit: 2319)
   CGroup: /system.slice/tomcat.service
 エラーがない場合は、起動時にTomcatサービスを自動的に開始できるようにします。
sudo systemctl enable tomcat ステップ5:ファイアウォールを調整する#
 サーバーがファイアウォールで保護されていて、ローカルネットワークの外部からTomcatにアクセスする場合は、ポート8080を開く必要があります。 。
 ポート8080でのトラフィックを許可するには 次のコマンドを入力します:
sudo ufw allow 8080/tcp 通常、本番環境でTomcatアプリケーションを実行する場合は、ロードバランサーまたはリバースプロキシが使用されます。ポート8080へのアクセスを制限することをお勧めします 内部ネットワークにのみ。 ステップ6:Tomcat Web管理インターフェースを構成する#
Tomcatがインストールされて実行されたので、次のステップはWeb管理インターフェースにアクセスできるユーザーを作成することです。
 Tomcatのユーザーとロールは、tomcat-users.xmlで定義されています。 ファイル。このファイルは、ユーザーまたはロールの構成方法を説明するコメントと例を含むテンプレートです。
sudo nano /opt/tomcat/latest/conf/tomcat-users.xml 
 Tomcat Webインターフェース(manager-guiおよびadmin-gui)にアクセスできる新しいユーザーを追加するには、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> もう1つのオプションは、特定のIPからのみManagerおよびHostManagerアプリへのアクセスを許可することです。ブロックにコメントを付ける代わりに、IPアドレスをリストに追加するだけです。
 たとえば、パブリックIPが45.45.45.45の場合 次の変更を行います:
<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|45.45.45.45" />
</Context> 
 許可されるIPアドレスのリストは、縦棒|で区切られたリストです。 。単一のIPアドレスを追加することも、正規表現を使用することもできます。
変更を有効にするためにTomcat構成ファイルを編集するたびに、Tomcatサービスを再起動することを忘れないでください。
sudo systemctl restart tomcat ステップ6:Tomcatのインストールをテストする#
 ブラウザを開き、次のように入力します:http://<your_domain_or_IP_address>:8080 
インストールが成功すると、次のような画面が表示されます。
 
 Tomcat Webアプリケーションマネージャーダッシュボードは、http://<your_domain_or_IP_address>:8080/manager/htmlで入手できます。 。ここから、アプリケーションをデプロイ、アンデプロイ、開始、停止、およびリロードできます。
 Step 6で作成したユーザーでサインインできます 。
 
 Tomcat仮想ホストマネージャーダッシュボードは、http://<your_domain_or_IP_address>:8080/host-manager/htmlで入手できます。 。ここから、Tomcat仮想ホストを作成、削除、および管理できます。