Ubuntu に Apache Tomcat をインストールする方法
Java サーバー ページ コーディングまたは Java サーブレットを含む Web ページを実行する場合は、Apache Tomcat を使用できます。これはApache Software Foundation によってリリースされたオープンソースの Web サーバーおよびサーブレット コンテナです。
Tomcat は、独自の Web サーバーを備えたスタンドアロン製品として使用することも、Apache や IIS などの他の Web サーバーと組み合わせて使用することもできます。 Tomcat の最新バージョンは 9.0.14 で、Tomcat 8 および 8.5 上に構築され、Servlet 4.0、JSP 2.2 を実装しています。
こちらもお読みください: CentOS/RHEL に Apache Tomcat 9 をインストールする方法
新しいバージョンでは次の改善が行われました。
- HTTP/2 のサポートが追加されました。
- JSSE コネクタでの TLS サポートに OpenSSL を使用するためのサポートが追加されました。
- TLS 仮想ホスト (SNI) のサポートが追加されました。
このチュートリアルでは、Apache Tomcat 9 を Ubuntu 18.10 およびそれ以前のバージョンの Ubuntu にインストールする方法を説明します。
ステップ 1: Java のインストール
Java Web アプリケーションを実行するには、Tomcat ではサーバーに Java がインストールされている必要があります。この要件を満たすために、 図に示すようにOpenJDK をインストールします。
sudo apt update
sudo apt install default-jdk
ステップ 2: Tomcat ユーザーの作成
セキュリティ上の理由から、Tomcat は非特権ユーザー、つまり非 root で実行する必要があります。このため、サービスを実行するユーザーとグループ Tomcat を作成します。まず、Tomcat グループを作成します。
sudo groupadd tomcat
次に、tomcat グループのメンバーとなるtomcat ユーザーを作成します。 Tomcat をインストールする場所なので、このユーザーのホームの場所は /opt/tomcat になります。シェルを /bin/false に設定します。
sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
これで、次のステップに進み、Tomcat をダウンロードする準備が整いました。
ステップ 3: Apache Tomcat のインストール
利用可能な最新のパッケージをダウンロードするには、Tomcat のダウンロード ページにアクセスして、最新バージョンを入手します。
このチュートリアルの執筆時点では、Tomcat の最新バージョンは 9.0.14 です。そのバージョンをダウンロードするには、現在のディレクトリを別のディレクトリに変更します。たとえば、/tmp を使用できます。
cd /tmp
次に、wget コマンドを使用して Tomcat アーカイブをダウンロードします。
wget http://apache.cbox.biz/tomcat/tomcat-9/v9.0.14/bin/apache-tomcat-9.0.14.tar.gz
wget https://www.apache.org/dist/tomcat/tomcat-9/v9.0.14/bin/apache-tomcat-9.0.14.tar.gz.sha512
ファイルの sha512 合計を確認したい場合は、次を実行できます。
sha512sum apache-tomcat-9.0.14.tar.gz
cat apache-tomcat-9.0.14.tar.gz.sha512
両方のファイルの結果の値 (ハッシュ) は同じである必要があります。
前述したように、Tomcat を /opt/tomcat にインストールします。そのディレクトリを作成する必要があります。
sudo mkdir /opt/tomcat
そして、ダウンロードしたパッケージをその新しいディレクトリに抽出できるようになりました。
sudo tar xzvf apache-tomcat-9.0.14.tar.gz -C /opt/tomcat --strip-components=1
ここで /opt/tomcat に移動し、ここからフォルダーの所有権と権限を更新します。
cd /opt/tomcat
そして、/opt/tomcat のグループ所有者を tomcat に設定します。
sudo chgrp -R tomcat /opt/tomcat
次に、conf ディレクトリに対する Tomcat グループの読み取りアクセスを更新し、ディレクトリへの実行権限を設定します。
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 開始ファイルを作成する準備が整いました。
ステップ 4: Tomcat 用の SystemD サービス ファイルの作成
Tomcat をサービスとして実行したいので、プロセスを簡単に管理できるファイルが必要です。この目的のために、systemd サービス ファイルを作成します。 Tomcat は、システム上の Java がどこにあるかを認識する必要があります。
その場所を見つけるには、次のコマンドを使用します。
sudo update-java-alternatives -l
このコマンドの出力には、JAVA_HOME の場所が表示されます。
これで、その情報を使用して Tomcat サービス ファイルを作成する準備が整いました。
sudo vim /etc/systemd/system/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
JAVA_HOME を必ずお使いのシステムのものに設定してください。準備ができたら、ファイルを保存して閉じます。ここで、以下のコマンドを使用して systemd デーモンをリロードし、新しいサービス ファイルを見つけられるようにします。
sudo systemctl daemon-reload
次に、Tomcat サービスを開始します。
sudo systemctl start tomcat
サービスのステータスは次の方法で確認できます。
sudo systemctl status tomcat
システムの IP アドレスに続いてサービスのデフォルト ポート 8080 を使用して、ブラウザで Tomcat をテストできるようになりました。
http://ip-address:8080
結果は、次の図に示すようなものになるはずです。
上記の出力が表示されない場合は、示されているようにファイアウォールでポート 8080 を許可する必要がある可能性があります。
sudo ufw allow 8080
Tomcat をシステム起動時に起動したい場合は、以下を実行します。
systemctl enable tomcat
ステップ 5: Apache Tomcat の構成
Tomcat には、Web マネージャー アプリがプリインストールされています。これを使用するには、tomcat-users.xml ファイル内で認証をセットアップする必要があります。お気に入りのテキスト エディタでそのファイルを開いて編集します。
sudo vim /opt/tomcat/conf/tomcat-users.xml
マネージャーおよび管理者インターフェースにアクセスできるユーザーを追加します。このようなユーザーを構成するには、
タグの間に次の行を追加します。
<user username="Username" password="Password" roles="manager-gui,admin-gui"/>
必ず変更してください:
- ユーザー名 – 認証するユーザー。
- パスワード – 認証に使用するパスワード。
デフォルトではホスト マネージャーとマネージャーへのアクセスが制限されているため、これらの制限を削除または変更する必要があります。このような変更を加えるには、次のファイルをロードできます。
マネージャー アプリの場合:
sudo vim /opt/tomcat/webapps/manager/META-INF/context.xml
ホストマネージャーアプリの場合:
sudo vim /opt/tomcat/webapps/host-manager/META-INF/context.xml
これらのファイル内で、IP 制限をコメントするか、パブリック IP アドレスを許可することができます。このチュートリアルの目的のために、次の行をコメントしました。
変更を有効にするには、次のコマンドを使用して Tomcat サービスをリロードします。
sudo systemctl restart tomcat
http://ipaddress:8080/manager/ にアクセスしてマネージャー アプリをテストできるようになりました。ユーザー名とパスワードの入力を求められたら、以前に設定したものを使用します。その後に表示されるインターフェイスは次のようになります。
ホスト マネージャーにアクセスするには、http://ip-address:8080/host-manager/ を使用できます。
仮想ホスト マネージャーを使用すると、Tomcat アプリケーション用の仮想ホストを作成できます。
ステップ 6: テスト ファイルを作成して Apache Tomcat をテストする
/opt/tomcat/webapps/ROOT/ ディレクトリ内にテスト ファイルを作成することで、すべてがスムーズに動作しているかどうかを確認できます。
このようなファイルを作成しましょう:
sudo vim /opt/tomcat/webapps/ROOT/tecmint.jsp
そのファイル内に次のコードを貼り付けます。
<html>
<head>
<title>Tecmint post:TomcatServer</title>
</head>
<body>
<START OF JAVA CODES>
<%
out.println("Hello World! I am running my first JSP Application");
out.println("<BR>Tecmint is an Awesome online Linux Resource.");
%>
<END OF JAVA CODES>
</body>
</html>
ファイルを保存し、図のように所有権を設定します。
sudo chown tomcat: /opt/tomcat/apache-tomcat-8.5.14/webapps/ROOT/tecmint.jsp
次に、http://ip-address:8080/tecmint.jsp を使用して、そのファイルをブラウザに読み込みます。
それでおしまい! Apache Tomcat サーバーのセットアップが完了し、最初の Java コードが実行されました。このプロセスが簡単で簡単だったことを願っています。何か問題に直面した場合は、下のコメント フォームから問題を共有してください。