Ubuntu16.04にApacheTomcat8をインストールする方法
序章
Apache Tomcatは、Javaアプリケーションを提供するために使用されるWebサーバーおよびサーブレットコンテナです。 Tomcatは、ApacheSoftwareFoundationによってリリースされたJavaサーブレットおよびJavaServerPagesテクノロジのオープンソース実装です。 このチュートリアルでは、Ubuntu16.04サーバーでのTomcat8の最新リリースの基本的なインストールといくつかの構成について説明します。
前提条件
このガイドを開始する前に、root以外のユーザーが sudo
サーバーに設定された特権。 これを行う方法については、Ubuntu16.04初期サーバーセットアップガイドを完了することで学ぶことができます。
ステップ1:Javaをインストールする
Tomcatでは、Java Webアプリケーションコードを実行できるように、サーバーにJavaをインストールする必要があります。 apt-getを使用してOpenJDKをインストールすることで、この要件を満たすことができます。
まず、apt-getパッケージインデックスを更新します。
- sudo apt-get update
次に、apt-getを使用してJavaDevelopmentKitパッケージをインストールします。
- sudo apt-get install default-jdk
Javaがインストールされたので、次のように作成できます。 tomcat
ユーザー。Tomcatサービスの実行に使用されます。
ステップ2:Tomcatユーザーを作成する
セキュリティ上の理由から、Tomcatは非特権ユーザーとして実行する必要があります(つまり、 ルートではありません)。 Tomcatサービスを実行する新しいユーザーとグループを作成します。
まず、新しいを作成します tomcat
グループ:
- sudo groupadd tomcat
次に、新しいを作成します tomcat
ユーザー。 このユーザーをメンバーにします tomcat
グループ、ホームディレクトリは /opt/tomcat
(Tomcatをインストールする場所)、および /bin/false
(したがって、誰もアカウントにログインできません):
- sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
今、私たちの tomcat
ユーザーが設定されたら、Tomcatをダウンロードしてインストールしましょう。
ステップ3:Tomcatをインストールする
Tomcat 8をインストールする最良の方法は、最新のバイナリリリースをダウンロードしてから手動で構成することです。
Tomcat8ダウンロードページでTomcat8の最新バージョンを見つけてください。 執筆時点では、最新バージョンは 8.5.5 ですが、入手可能な場合は、それ以降の安定バージョンを使用する必要があります。 Binary Distributions セクションの下で、次に Core リストの下で、リンクを「tar.gz」にコピーします。
次に、に変更します /tmp
サーバー上のディレクトリ。 これは、Tomcattarballなどの一時的なアイテムをダウンロードするのに適したディレクトリです。Tomcatのコンテンツを抽出した後は必要ありません。
- cd /tmp
使用する curl
Tomcat Webサイトからコピーしたリンクをダウンロードするには:
- curl -O http://apache.mirrors.ionfish.org/tomcat/tomcat-8/v8.5.5/bin/apache-tomcat-8.5.5.tar.gz
Tomcatをにインストールします /opt/tomcat
ディレクトリ。 ディレクトリを作成し、次のコマンドを使用してアーカイブをそのディレクトリに抽出します。
- sudo mkdir /opt/tomcat
- sudo tar xzvf apache-tomcat-8*tar.gz -C /opt/tomcat --strip-components=1
次に、インストールに適切なユーザー権限を設定できます。
手順4:権限を更新する
The tomcat
設定したユーザーは、Tomcatインストールにアクセスできる必要があります。 これを設定します。
Tomcatインストールを解凍したディレクトリに移動します。
- cd /opt/tomcat
与える tomcat
インストールディレクトリ全体のグループ所有権:
- sudo chgrp -R tomcat /opt/tomcat
次に、 tomcat
グループ読み取りアクセス conf
ディレクトリとそのすべてのコンテンツ、およびディレクトリ自体への executeアクセス:
- sudo chmod -R g+r conf
- sudo chmod g+x conf
を作る tomcat
ユーザーの所有者 webapps
, work
, temp
、 と logs
ディレクトリ:
- sudo chown -R tomcat webapps/ work/ temp/ logs/
適切な権限が設定されたので、Tomcatプロセスを管理するためのsystemdサービスファイルを作成できます。
ステップ5:systemdサービスファイルを作成する
Tomcatをサービスとして実行できるようにしたいので、systemdサービスファイルを設定します。
Tomcatは、Javaがインストールされている場所を知る必要があります。 このパスは、一般に「JAVA_HOME」と呼ばれます。 その場所を検索する最も簡単な方法は、次のコマンドを実行することです。
- sudo update-java-alternatives -l
Outputjava-1.8.0-openjdk-amd64 1081 /usr/lib/jvm/java-1.8.0-openjdk-amd64
正しい JAVA_HOME
変数は、最後の列(赤で強調表示)からの出力を取得して追加することで作成できます /jre
最後まで。 上記の例を考えると、正しい JAVA_HOME
このサーバーの場合:
JAVA_HOME/usr/lib/jvm/java-1.8.0-openjdk-amd64/jre
君の JAVA_HOME
異なる場合があります。
この情報を使用して、systemdサービスファイルを作成できます。 というファイルを開きます tomcat.service
の中に /etc/systemd/system
次のように入力してディレクトリを作成します。
- sudo nano /etc/systemd/system/tomcat.service
次の内容をサービスファイルに貼り付けます。 の値を変更します JAVA_HOME
必要に応じて、システムで見つけた値と一致させます。 で指定されているメモリ割り当て設定を変更することもできます。 CATALINA_OPTS
:
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64/jre
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デーモンをリロードして、サービスファイルを認識できるようにします。
- sudo systemctl daemon-reload
次のように入力して、Tomcatサービスを開始します。
- sudo systemctl start tomcat
次のように入力して、エラーなしで起動したことを再確認します。
- sudo systemctl status tomcat
手順6:ファイアウォールを調整してTomcatサーバーをテストする
Tomcatサービスが開始されたので、デフォルトのページが使用可能であることを確認するためにテストできます。
その前に、リクエストがサービスに到達できるようにファイアウォールを調整する必要があります。 前提条件に従った場合は、 ufw
現在ファイアウォールが有効になっています。
Tomcatはポートを使用します 8080
従来の要求を受け入れるため。 次のように入力して、そのポートへのトラフィックを許可します。
- sudo ufw allow 8080
ファイアウォールを変更すると、ドメインまたはIPアドレスに移動してからデフォルトのスプラッシュページにアクセスできます。 :8080
Webブラウザの場合:
Open in web browserhttp://server_domain_or_IP:8080
他の情報に加えて、デフォルトのTomcatスプラッシュページが表示されます。 ただし、たとえばManagerアプリのリンクをクリックすると、アクセスが拒否されます。 次に、そのアクセスを構成できます。
Tomcatに正常にアクセスできた場合は、サービスファイルを有効にして、Tomcatが起動時に自動的に起動するようにする良い機会です。
- sudo systemctl enable tomcat
ステップ7:TomcatWeb管理インターフェースを構成する
Tomcatに付属のマネージャーWebアプリを使用するには、Tomcatサーバーにログインを追加する必要があります。 これを行うには、 tomcat-users.xml
ファイル:
- sudo nano /opt/tomcat/conf/tomcat-users.xml
アクセスできるユーザーを追加する必要があります manager-gui
と admin-gui
(Tomcatに付属のWebアプリ)。 これを行うには、以下の例のように、ユーザーを定義します。 tomcat-users
タグ。 ユーザー名とパスワードを安全なものに変更してください。
<tomcat-users . . .>
<user username="admin" password="password" roles="manager-gui,admin-gui"/>
</tomcat-users>
終了したら、ファイルを保存して閉じます。
デフォルトでは、Tomcatの新しいバージョンは、マネージャーおよびホストマネージャーアプリへのアクセスをサーバー自体からの接続に制限します。 リモートマシンにインストールしているため、この制限を削除または変更することをお勧めします。 これらのIPアドレス制限を変更するには、適切なを開きます context.xml
ファイル。
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アドレスの制限をコメントアウトして、どこからでも接続できるようにします。 または、自分のIPアドレスからの接続へのアクセスのみを許可する場合は、パブリック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>
終了したら、ファイルを保存して閉じます。
変更を有効にするには、Tomcatサービスを再起動します。
- sudo systemctl restart tomcat
ステップ8:Webインターフェイスにアクセスする
ユーザーを作成したので、WebブラウザーでWeb管理インターフェースに再度アクセスできます。 繰り返しになりますが、ブラウザのポート8080に続いてサーバーのドメイン名またはIPアドレスを入力することにより、正しいインターフェイスにアクセスできます。
Open in web browserhttp://server_domain_or_IP:8080
表示されるページは、以前にテストしたときに表示されたものと同じである必要があります。
リンクまたはリンクからアクセスできるManagerアプリを見てみましょう。 http://server_domain_or_IP:8080/manager/html
. 追加したアカウントのクレデンシャルを入力する必要があります tomcat-users.xml
ファイル。 その後、次のようなページが表示されます。
Webアプリケーションマネージャは、Javaアプリケーションを管理するために使用されます。 ここで、開始、停止、再ロード、デプロイ、およびアンデプロイできます。 アプリでいくつかの診断を実行することもできます(つまり、 メモリリークを見つけます)。 最後に、サーバーに関する情報は、このページの一番下にあります。
次に、リンクまたはリンクからアクセスできるホストマネージャーを見てみましょう。 http://server_domain_or_IP:8080/host-manager/html/
:
[仮想ホストマネージャー]ページから、アプリケーションを提供する仮想ホストを追加できます。
結論
Tomcatのインストールが完了しました。 これで、独自のJavaWebアプリケーションを自由にデプロイできます。
現在、Tomcatのインストールは機能していますが、完全に暗号化されていません。 これは、パスワードなどの機密項目を含むすべてのデータがプレーンテキストで送信され、インターネット上の他の関係者が傍受して読み取ることができることを意味します。 これを防ぐために、SSLを使用して接続を暗号化することを強くお勧めします。 このガイドに従って、Tomcatへの接続を暗号化する方法を確認できます。