Windows

WindowsにJavaアプリケーションサーバー環境

概要

直接案件で構築したというわけではありませんが、構築した内容を共有してどなたかのためになればと思い記事にしました!
内容は、WindowsにJavaアプリケーションサーバー環境(Apache 、Tomcat 、Amazon Corretto 、mod_proxy_ajp)を構築して簡単なwebサイトを表示させてみます。

構築

EC2(Microsoft Windows Server 2025 Base)

実際の案件とは違うイメージですが、試しに「Microsoft Windows Server 2025 Base」を使ってみます。
日本語バージョンを選ぶことで、次の設定を省略可能。

  • RDPのポートはデフォルトの通り開けておきます。
  • パブリックサブネットに配置します。
  • リモートデスクトップでログイン
    • 言語を日本語に設定
    • 時刻設定を「タイムゾーン((UTC+09:00)大阪、札幌、東京)」今すぐ同期を選択します。
    • 地域をデフォルトの米国から日本へ変更します。

Amazon Corretto

本番環境に対応した 無料の OpenJDK ディストリビューションということで、ファイルをダウンロードしてインストールします。wingetコマンドでのインストールも可能なようですが、UIベースで進めます。

Amazon Correttoファイル ダウンロードサイト

ウィザードに従ってインストールします。

環境変数を確認します。
windowsの検索窓から”環境変数を編集”で検索します。

  1. システム環境変数欄の「JAVA_HOME」が存在することを確認します。
  2. Pathに%JAVA_HOME%\binこれを追記する。
  3. パスが通っているか確認します。コマンドプロンプトで次のコマンドを実行する。java -version
    出力例:

    C:\Users\Administrator>java -version
    openjdk version "21.0.5" 2024-10-15 LTS
    OpenJDK Runtime Environment Corretto-21.0.5.11.1 (build 21.0.5+11-LTS)
    OpenJDK 64-Bit Server VM Corretto-21.0.5.11.1 (build 21.0.5+11-LTS, mixed mode, sharing)

Apache HTTP Server

Apache HTTP Serverをインストールします。
次のリンクからファイルを選択してダウンロードします。

Apache Loungeサードパーティーダウンロードサイト

セットアップする端末の環境に合わせてダウンロードします。私の場合、「Apache 2.4.62-240904 Win64」これをダウンロード。

ダウンロードしたzipファイルを展開し、Cドライブ直下に配置します。
展開した図

Cドライブに配置した時の図
Apache24フォルダのみ、移動させます。

次にパスを通します。
"環境変数を編集"から、PathにC:\Apache24\binこれを追加します。

次のコマンドでパスが通っているか確認してみます。
コマンドプロンプト

httpd -version

表示例:

C:\Users\Administrator>httpd -version
Server version: Apache/2.4.62 (Win64)
Apache Lounge VS17 Server built:   Sep  4 2024 10:31:52

WindowsサービスにApacheを登録します。

httpd -k install

表示例:

C:\Apache24\bin>httpd -k install
Installing the 'Apache2.4' service
The 'Apache2.4' service is successfully installed.
Testing httpd.conf....
Errors reported here must be corrected before the service can be started.

コマンドプロンプト上でフォルダを移動し、Apacheを起動

cd C:\Apache24\bin

現在のフォルダを確認

cd
httpd -k start

表示例:

C:\Apache24\bin>sc query "Apache2.4"

SERVICE_NAME: Apache2.4
        TYPE               : 10  WIN32_OWN_PROCESS
        STATE              : 4  RUNNING
                                (STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0

※ご参考
Apacheの再起動コマンド

httpd -k restart

先に環境変数を設定して、インストールします。
次にパスを通します。
"環境変数を編集"に移動し次のように追加・新規作成します。

  1. Path:
    %CATALINA_HOME%\bin
  2. システム環境変数(新規):
    変数名:CATALINA_HOME
    変数値:C:\Tomcat

Tomcatをダウンロードしてインストールします。

Tomcat公式ダウンロードサイト

Binary Distributions欄の「Windows Service Installer」でexeファイルをダウンロードします。

exeファイルを実行します。
ウィザードに従い、規約の同意を済ませます。
一か所注意が必要です。

私はTomcatで一般に使用されるポートをそのまま使用しました。
※パスワード、ユーザー名も任意です。
sever shutdown port:8005
http HTTP/1.1 Connector:8080
username:admin
pw:admin

注意:インストールするフォルダ(パス)をデフォルトから次のとおり編集します。

C:\Tomcat
このように先に設定した環境変数のフォルダ名とパスを合わせます。
次の画像のとおり配置されていることを確認します。

※次は、Powershellで作業を進めます。なお、cmdは以降も使用するので、開いたままにします。
環境変数で設定したフォルダに移動します。

cd $env:CATALINA_HOME\bin

表示例:

PS C:\Users\Administrator> cd $env:CATALINA_HOME\bin
PS C:\Tomcat\bin>

Tomcatを起動します。

startup.bat

表示例:

PS C:\Tomcat\bin> startup.bat
Using CATALINA_BASE:   "C:\Tomcat"
Using CATALINA_HOME:   "C:\Tomcat"
Using CATALINA_TMPDIR: "C:\Tomcat\temp"
Using JRE_HOME:        "C:\Program Files\Amazon Corretto\jdk21.0.5_11"
Using CLASSPATH:       "C:\Tomcat\bin\bootstrap.jar;C:\Tomcat\bin\tomcat-juli.jar"

ブラウザで次のURLを検索してTomcatのウェルカムページが表示されることを確認します。
http://localhost:8080

mod_proxy_ajp

Apache HTTP Server(Apache)とApache Tomcat(Tomcat)を連携するためのモジュールを有効化します。

ここでのApacheは交通整理のような機能を果たし、Tomcatはそれを処理する担当となるようです。
あまりにザクっとしているので、次のwebサイトを参考にしてください。

Mod_proxy_ajp.so モジュールに関する説明

httpd.confファイルを編集します。

notepad "$env:C:\Apache24\conf\httpd.conf"

次の箇所をアンコメント(コメントアウトを外す。)します。

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

現在のhttpd.confファイルを開いたまま、次の文字列を追加します。
ApacheからTomcatにリクエストを転送するための専用ポート8009番を使用するという設定です。

ProxyPass "/app" "ajp://localhost:8009/app"
ProxyPassReverse "/app" "ajp://localhost:8009/app"

保存して閉じます。

Apacheを再起動して適用します。(コマンドプロント)

httpd -k restart

ステータスを確認します。(コマンドプロンプト)

sc query "Apache2.4"

Powershellに戻ります。
Tomcatの設定ファイルでAJPコネクタが有効になっているか確認します。

notepad "$env:CATALINA_HOME\conf\server.xml"

次の箇所をアンコメントします。

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

アンコメント前

<!--
    <Connector protocol="AJP/1.3"
               address="::1"
               port="8009"
               redirectPort="8443" />
    -->

アンコメント後

    <Connector protocol="AJP/1.3"
               address="::1"
               port="8009"
               redirectPort="8443" />

アンコメントができたら保存して閉じます。
Tomcatを再起動します。
まずは停止。

net stop Tomcat11

起動します。

net start Tomcat11

ステータスをタスクマネージャーから確認します。
windowsのシステムから、タスクマネージャーへ移動します。

実行中であることがわかります。

簡易的なJavaファイルを作成してブラウザから検索できるようにしてみましょう。
※ここで、Windows自体の拡張子を表示する設定を行う必要があります。
エクスプローラーを開き、表示タブ、表示、”ファイル名拡張子”にチェックを付けます。

フォルダ構成(C:\Tomcat\webapps)
webappsフォルダ配下に「app」フォルダを作成し、次のフォルダ構成でファイルを配置します。

app
├ WEB-INF
|       └ web.xml
└ index.jsp

index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Simple App</title>
</head>
<body>
    <h1>Welcome to the Simple Java App!</h1>
    <p>This is a simple JSP page running on Tomcat.</p>
</body>
</html>

web.xml

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
         http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">

    <display-name>Simple Java App</display-name>

    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>

次のアドレスへブラウザからアクセスします。

http://localhost:8080/app/

このように表示されると成功です!
お疲れ様でした!

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA