Gradleとは何者?インストール方法〜使い方までわかりやすく解説
JavaでWebアプリを開発する際に、必ずといっていいほど目にするのが「Tomcat」という単語。
Tomcatとは何なのか?なぜ必要なのか?といった疑問にお答えします。
1.Tomcatとは?
Tomcatは、Javaで作成したWebアプリケーションを実行するために利用するソフトウェア。
無償で利用できる「サーブレットコンテナ」で、多くの現場やWeb開発で利用されている、言わば「デファクトスタンダード」といえる存在です。
2.Tomcatについて学ぶ前の前提知識
まずは、Tomcatを学ぶうえで大事な基礎知識から解説していきます。
①Webサーバーとは
Webサーバーは、一般的にWebアプリケーションが動作するソフトウェアを指します。
たとえば、Webブラウザを利用して閲覧しているこのサイトも、Webサーバー上で動作しています。
Webサーバーの主な役割は、「ブラウザからのアクセスを受け取り、適切なコンテンツを返却する」というものです。
さまざまなWebサーバー
Webサーバーとして有名なのが「Apache」と「Nginx」、そして「IIS」です。
Apache
Apacheは歴史のあるWebサーバーです。
設定が容易であり、簡単に導入できることから、多くのWebシステムで動作しています。
Nginx
NginxはApacheよりあとに登場したWebサーバーで、高速・大量処理を目的に開発されました。
Apacheと比較して高速に動作し、一度に多くのリクエストを処理することが可能です。そのため、多くのユーザーが利用するようなシステムでの採用が増えています。
もともと、Apacheが絶大なシェアを誇っていましたが、2021年にはNginxがApacheのシェアを追い越しました。
IIS
IISはMicrosoftが提供するWebサーバーです。Windows上で動作し、Webサーバーとしての基本機能のほか、「.NET Framework」で開発したWebアプリを動作させるために必要な機能を備えています。
IISはWindows Serverに標準搭載されており、開発用に機能が制限されたIISがWindows10などで利用できます。
GUIで設定を完結できることから、非開発者にとっては非常に扱いやすいWebサーバーです。ただし、Windows上でしか動作せずLinux版は提供されていませんので注意しましょう。
②Webコンテナ(サーブレットコンテナ)とは
TomcatはWebサーバーとしての役割も持っていますが、特に「Webコンテナ」または「サーブレットコンテナ」と呼ばれています。
詳しい解説は省略しますが、サーバー上で動作するJavaの仕様の多くは「Jakarta EE」として仕様が定義されており、「サーブレットコンテナ」の仕様もこのJakarta EEの仕様のひとつとして定義されています。
Jakarta EEを実装したソフトウェアとしては、「Glassfish」や「JBoss」などがあり、多くの製品が有償で提供されています。
Tomcatは、「Jakarta EE」の仕様の中でもサーブレットコンテナとしての機能に特化しているかわりに、無償で利用できるのです。
サーブレットとは
サーブレットは、JavaでWebアプリケーションを構築する際に作成するクラスを指します。
HttpServletを継承したクラスを作成し、Webブラウザからのアクセスに応じた処理を実装していきます。
サーブレットには、ブラウザからアクセスするようなURLと、「GET」や「POST」といったリクエストメソッドに応じた処理を記述するのです。
サーブレットコンテナの役割
サーブレットコンテナは、サーバー上でサーブレットを実行する役割を果たします。
内部的にJavaを動作させ、アクセスしたリクエストに応じてサーブレットを実行し、実行結果を返却します。
③Webサーバーとサーブレットコンテナの違い
Webサーバーとサーブレットコンテナは、「サーバー上で動作するソフトウェア」という点では同じですが、役割が少し異なります。
Webサーバーはブラウザからのアクセスに対して、どのような処理をするのかを判断する機能を持ちます。サーブレットコンテナは「サーブレットを実行する処理に特化している」と考えましょう。
実はTomcatは、簡易的ではありますがWebサーバーとしての機能を有しています。この機能を利用することで、Tomcatのみでブラウザからアクセスが可能になっているのです。
3.Tomcatのインストール方法
それでは、Tomcatをインストールする方法を紹介します。
今回は、Tomcatの最新版であるTomcat10をWindowsのパソコンへインストールしてみましょう。
(画面はWindows11ですが、Windows10でも同じ手順でインストールできます。)
①前提条件
すでに、Java17がインストールされているものとします。
Java17以前でもTomcatは利用可能ですが、対応するJavaのバージョンは11以降であるため注意しましょう。
②Tomcatのダウンロード
下記のURLから、Tomcatのダウンロードページへアクセスしましょう。
https://tomcat.apache.org/download-10.cgi
下にスクロールすると、「Windows Service Installer」と表記されているリンクがあるので、クリックしてインストーラーをダウンロードします。
もしダウンロードに失敗した場合やあまりにもダウンロードが遅い場合には、「Other mirrors:」の項目から違うサイトを選択するとよいでしょう。
③Tomcatのインストール
ダウンロードしたexeファイルを実行してインストールを始めましょう。
実行すると、以下の画面が表示されるので「Next」をクリックします。
ライセンスの確認
ライセンスについての記載がされていますので、内容を確認の上「I Agree」を選択します。
インストールモジュールの選択
次に、インストールするモジュールを選択します。
「Example」を選択したうえで「Next」をクリックしましょう。
Exampleには、Tomcatが正常に動作するためのサンプルアプリが含まれています。
選択しなくてもTomcatの動作自体には影響しませんので、本番環境やテスト環境といったサーバーへのインストール時には選択しないようにしましょう。
ポートとユーザーの確認
Tomcatにアクセスするための「ポート」や、ユーザーの設定を入力します。
「Tomcat Administrator Login」の項目には、自身でパスワードを設定しましょう。
ここで「Tomcat Administrator Login」の項目を設定すると、Web上からTomcatを扱えます。そのためパスワードが漏洩するとサーバーが乗っ取られる可能性が高くなり、セキュリティのリスクが激増します。
あくまでも自身のPC内でTomcatを扱うための方法であるため、本番環境ではこの項目を入力しないようにしましょう。
Javaのパス指定
Javaがインストールされたパスを指定します。
正常にJavaがインストールされていれば、以下のように自動で入力されています。
インストールしたJDKの種類によってパスが若干異なるため注意しましょう。
Javaのインストールパスを確認の上、「Next」をクリックします。
インストール先の指定
Tomcatをどこにインストールするかを選択します。
今回は、そのままで「Install」をクリックします。
インストールが始まったら、終わるまで待ちましょう。
インストール終了
完了画面が表示されるので、「Run Apache Tomcat」が選択されていることを確認し、「Finish」をクリックします。
(画面上では選択されていますが、「Show Readme」は外しても構いません。)
これでTomcatのインストールは完了です。
4.Tomcatの基本的な操作方法
それでは、実際にTomcatを使ってみましょう。
Tomcatのインストールに成功していれば、以下のようにタスクバーにTomcatのアイコンが表示されています。
このアイコンを右クリックすることで、Tomcatの操作画面が表示されます。
①Tomcatの起動
インストール直後であれば、Tomcatは自動で起動しています。
「Service Status」に「Started」文字が表示されていることを確認しましょう。
もし、以下のように「Stopped」だった場合には、「Start」のボタンをクリックすることでTomcatが起動されます。
Tomcatを起動したことを確認するためには、PCのブラウザから http://localhost:8080 にアクセスします。
以下のように、Tomcatの情報が表示されていれば無事起動しています。
②Tomcatの停止
Tomcatを停止する場合、Stopボタンをクリックします。
③Tomcatの再起動
通常、「Restart」ボタンをクリックすることで再起動が可能です。しかし今回紹介した方法でインストールしたTomcatでは、OSの仕様によりこのボタンを選択できません。
そのため、「Stop」をクリックして停止を確認した後、「Start」をクリックして起動してください。
5.ApacheとTomcatを連携してみよう
TomcatもWebサーバーとしての役割は持っているものの、一般公開するような場合には機能が不足しています。
そのため、WebサーバーとTomcatを連携して併用するのが一般的です。
前述の通りさまざまなWebサーバーが存在しますが、Tomcatであればいずれのソフトウェアとも組み合わせて利用可能です。
今回は、その中でもApacheと連携する方法を紹介します。
①前提条件
先ほどと同様に、Windowsでの設定手順を紹介します。
なお、Apacheはすでにインストールが完了しているものとします。
②Apacheの設定
httpd.confの設定
インストールしたApacheの「conf」フォルダにある、「httpd.conf」を編集します。
まずはモジュールの設定を有効化するため、以下の2行を変更します。
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
↓
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
最終行に以下のコードを追加します。
ProxyPass /tomcat ajp://localhost:8009/
③Tomcatの設定
Tomcatを停止したうえで、Tomcatのインストールフォルダの「conf」にある「server.xml」を編集します。
以下のようにAJPの設定が記述されていますので、この設定を有効化してください。
server.confはXML形式で記述されていますので、<!–と–>で囲まれたコメントアウトの記述を削除します。
また、解除したXMLの属性に、「secretRequired=“false”」を忘れずに追加してください。
変更前
<!-- Define an AJP 1.3 Connector on port 8009 -->
<!--
<Connector protocol="AJP/1.3"
address="::1"
port="8009"
redirectPort="8443" />
-->
↓
変更後
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector protocol="AJP/1.3"
address="::1"
port="8009"
secretRequired="false"
redirectPort="8443" />
④動作確認
設定が完了したら、ApacheとTomcatを再起動しましょう。
起動を確認したうえで、 http://localhost/tomcat へアクセスします。
(Tomcatのアクセスと異なり、ポートを記述していないことに注意しましょう。)
以下のように表示されていれば、ApacheとTomcatの連携は完了です。