前書き
Apache Tomcatは、Javaアプリケーションを提供するために使用されるWebサーバーおよびサーブレットコンテナーです。 Tomcatは、Apache Software FoundationがリリースしたJava ServletおよびJavaServer Pagesテクノロジーのオープンソース実装です。 このチュートリアルでは、CentOS 7サーバーでのTomcat 8の最新リリースの基本的なインストールといくつかの構成について説明します。
前提条件
このガイドを開始する前に、サーバーに別の非ルートユーザーアカウントを設定する必要があります。 CentOS 7のinitial server setupで手順1〜3を完了すると、これを行う方法を学ぶことができます。 このチュートリアルの残りの部分では、ここで作成したdemo
ユーザーを使用します。
Javaをインストールする
Tomcatでは、Javaがサーバーにインストールされている必要があるため、Java Webアプリケーションコードを実行できます。 OpenJDK 7をyumと共にインストールすることで、その要件を満たしましょう。
yumを使用してOpenJDK 7 JDKをインストールするには、次のコマンドを実行します。
sudo yum install java-1.7.0-openjdk-devel
プロンプトでy
と答えて、OpenJDK7のインストールを続行します。
後でTomcatを設定する必要があるJAVA_HOMEディレクトリへのショートカットは、/usr/lib/jvm/jre
にあります。
Javaがインストールされたので、Tomcatサービスの実行に使用されるtomcat
ユーザーを作成しましょう。
Tomcatユーザーを作成する
セキュリティ上の理由から、Tomcatは非特権ユーザーとして実行する必要があります(つまり、 ルートではありません)。 Tomcatサービスを実行する新しいユーザーとグループを作成します。
まず、新しいtomcat
グループを作成します。
sudo groupadd tomcat
次に、新しいtomcat
ユーザーを作成します。 このユーザーをtomcat
グループのメンバーにし、ホームディレクトリを/opt/tomcat
(Tomcatをインストールします)、シェルを/bin/false
にします(誰もログに記録できないようにします)。アカウントに):
sudo useradd -M -s /bin/nologin -g tomcat -d /opt/tomcat tomcat
tomcat
ユーザーが設定されたので、Tomcatをダウンロードしてインストールしましょう。
Tomcatをインストールする
この時点でTomcat 8をインストールする最も簡単な方法は、最新のバイナリリリースをダウンロードしてから手動で構成することです。
Tomcatバイナリをダウンロード
Tomcat 8 Downloads pageでTomcat8の最新バージョンを見つけます。 執筆時点では、最新バージョンは8.5.37です。 Binary Distributionsセクションの下、次にCoreリストの下で、リンクを「tar.gz」にコピーします。
wget
を使用して、最新のバイナリディストリビューションをホームディレクトリにダウンロードしましょう。
まず、yum
パッケージマネージャーを使用してwget
をインストールします。
sudo yum install wget
次に、ホームディレクトリに移動します。
cd ~
ここで、wget
を使用し、リンクを貼り付けて、次のようにTomcat 8アーカイブをダウンロードします(ミラーリンクはおそらく例とは異なります)。
wget https://www-eu.apache.org/dist/tomcat/tomcat-8/v8.5.37/bin/apache-tomcat-8.5.37.tar.gz
Tomcatを/opt/tomcat
ディレクトリにインストールします。 ディレクトリを作成してから、次のコマンドを使用してアーカイブを展開します。
sudo mkdir /opt/tomcat
sudo tar xvf apache-tomcat-8*tar.gz -C /opt/tomcat --strip-components=1
これで、適切なユーザー権限を設定する準備ができました。
権限を更新
設定したtomcat
ユーザーは、Tomcatインストールに適切にアクセスできる必要があります。 今すぐ設定します。
Tomcatインストールパスに変更します。
cd /opt/tomcat
インストールディレクトリ全体に対するtomcat
グループの所有権を付与します。
sudo chgrp -R tomcat /opt/tomcat
次に、tomcat
グループにconf
ディレクトリとそのすべての内容への読み取りアクセス権を付与し、ディレクトリ自体へのアクセス権を実行します。
sudo chmod -R g+r conf
sudo chmod g+x conf
次に、tomcat
ユーザーをwebapps
、work
、temp
、およびlogs
ディレクトリの所有者にします。
sudo chown -R tomcat webapps/ work/ temp/ logs/
適切な権限が設定されたので、Systemdユニットファイルを設定しましょう。
Systemd Unitファイルのインストール
Tomcatをサービスとして実行できるようにするため、Tomcat Systemdユニットファイルを設定します。
次のコマンドを実行して、ユニットファイルを作成して開きます。
sudo vi /etc/systemd/system/tomcat.service
次のスクリプトを貼り付けます。 CATALINA_OPTS
で指定されているメモリ割り当て設定を変更することもできます。
/etc/systemd/system/tomcat.service
# Systemd unit file for tomcat
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/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=/bin/kill -15 $MAINPID
User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
保存して終了。 このスクリプトは、指定された設定で、tomcat
ユーザーとしてTomcatサービスを実行するようにサーバーに指示します。
Systemdをリロードして、Tomcatユニットファイルをロードします。
sudo systemctl daemon-reload
これで、次のsystemctl
コマンドを使用してTomcatサービスを開始できます。
sudo systemctl start tomcat
次のように入力して、サービスが正常に開始されたことを確認します。
sudo systemctl status tomcat
Tomcatサービスを有効にしてサーバーの起動時に開始する場合は、次のコマンドを実行します。
sudo systemctl enable tomcat
Tomcatはまだ完全にはセットアップされていませんが、WebブラウザでドメインまたはIPアドレスに続けて:8080
を押すと、デフォルトのスプラッシュページにアクセスできます。
Open in web browser:http://server_IP_address:8080
他の情報に加えて、デフォルトのTomcatスプラッシュページが表示されます。 次に、Tomcatのインストールについて詳しく説明します。
Tomcat Web管理インターフェイスを構成する
Tomcatに付属のマネージャーwebappを使用するには、Tomcatサーバーにログインを追加する必要があります。 これを行うには、tomcat-users.xml
ファイルを編集します。
sudo vi /opt/tomcat/conf/tomcat-users.xml
このファイルには、ファイルの構成方法を説明するコメントが入力されています。 次の2行の間のすべてのコメントを削除するか、例を参照する場合はコメントを残すことができます。
tomcat-users.xml excerpt
...
manager-gui
およびadmin-gui
(Tomcatに付属のWebアプリケーション)にアクセスできるユーザーを追加する必要があります。 以下の例のようなユーザーを定義することにより、これを行うことができます。 ユーザー名とパスワードを安全なものに変更してください。
tomcat-users.xml — Admin User
tomcat-users.xmlファイルを保存して終了します。
デフォルトでは、Tomcatの新しいバージョンは、ManagerアプリとHost Managerアプリへのアクセスをサーバー自体からの接続に制限します。 リモートマシンにインストールするので、この制限を削除または変更することをお勧めします。 これらのIPアドレス制限を変更するには、適切なcontext.xml
ファイルを開きます。
Managerアプリの場合:
sudo vi /opt/tomcat/webapps/manager/META-INF/context.xml
ホストマネージャーアプリの場合:
sudo vi /opt/tomcat/webapps/host-manager/META-INF/context.xml
内部では、IPアドレスの制限をコメントアウトして、どこからでも接続できるようにします。 または、自分のIPアドレスからの接続のみにアクセスを許可する場合は、リストにパブリックIPアドレスを追加できます。
context.xml files for Tomcat webapps
完了したら、ファイルを保存して閉じます。
変更を有効にするには、Tomcatサービスを再起動します。
sudo systemctl restart tomcat
Webインターフェイスにアクセスする
Tomcatが稼働しているので、WebブラウザーでWeb管理インターフェースにアクセスしましょう。 これを行うには、ポート8080でサーバーのパブリックIPアドレスにアクセスします。
Open in web browser:http://server_IP_address:8080
次の図のようなものが表示されます。
ご覧のとおり、管理ユーザーを構成した管理Webアプリへのリンクがあります。
リンクまたはhttp://server_IP_address:8080/manager/html
からアクセスできるManagerアプリを見てみましょう。
Webアプリケーションマネージャは、Javaアプリケーションを管理するために使用されます。 ここで、開始、停止、リロード、デプロイ、およびアンデプロイできます。 アプリでいくつかの診断を実行することもできます(つまり、 メモリリークを見つける)。 最後に、サーバーに関する情報はこのページの一番下にあります。
次に、リンクまたはhttp://server_IP_address:8080/host-manager/html/
からアクセスできるホストマネージャーを見てみましょう。
Virtual Host Managerページから、アプリケーションを提供する仮想ホストを追加できます。
結論
Tomcatのインストールが完了しました! これで、独自のJava Webアプリケーションを自由にデプロイできます!