#author("2025-09-30T08:32:26+00:00","default:iseki","iseki")
#author("2025-09-30T08:36:09+00:00","default:iseki","iseki")
* オス猫
- アプリケーションサーバ
- Java の アプリケーションサーバ
** Install & Execute
*** JDK
- Tomcat10 を動かすには JDK-21 が必要

 dnf install -y  java-21-openjdk 
 dnf install -y  java-21-openjdk-devel

*** Download
- http://tomcat.apache.org/

*** use Binary
 # zcat apache-tomcat-10.1.46.tar.gz | tar xfv -
 # chmod o+rx apache-tomcat-10.1.46
 # mv apache-tomcat-10.1.46 /usr/local/tomcat

*** Exec & Stop with Webサーバモード
**** 8080ポートを開ける
 # firewall-cmd --add-port=8080/tcp --permanent
 # firewall-cmd --reload

**** 起動
 # cd /usr/local/tomcat/bin
 # ./startup.sh

**** 停止 
 # ./shutdown.sh

**** Service
- [[tomcat.service>https://polaris.star-dust.jp/Linux/tomcat/tomcat.service]]

** Apache との連携
*** アプリケーションサーバ
- サーバ側でアプリケーション(スクリプト)を実行する部分を切り離し,独立したサーバにしたもの.
- Webサーバと同じマシンで実行される場合もあるし,複数のアプリケーションサーバで負荷分散を行なう場合もある.
- ''Webブラウザ <-----> Webサーバ <-----> アプリケーションサーバ <-----> データベース''
- Webサーバ(apache)とアプリケーションサーバ(tomcat)の間でやり取りを行なうのが,''JKコネクタ'' である.
- JKコネクタには幾つかバージョンが存在するが,ここでは ''mod_jk'' を使用する.


*** apacheから tomocatへリクエストが渡される手順 (通常のCGIやPHPよりはかなり複雑)
- ''apache'' は ''mod_jk.conf'' をみて,''JkMount'' で指定された URL をコンテキストとして ''tomcat'' へ渡す.
- ''tomcat'' は ''/usr/local/tomcat/webapps'' にコンテキスト名のディレクトリが在るかどうかを検索する.
- ディレクトリがなければ,''/usr/local/tomcat/conf/Catalina/localhost/'' で ''コンテキスト名.xml'' を検索する.
- ''/usr/local/tomcat/conf/Catalina/localhost/コンテキスト名.xml'' の内容に従って,実際にコンテキストのあるディレクトリを決定する.
- コンテキストを実行し(ServletとJSPでは実行の仕方が違う),結果を apacheに返す.
- 注)''/usr/local/tomcat/work/Catalina/localhost'' には作業用ディレクトリが作成される.


*** 連携モジュール: JKコネクタ (Tomcatと Apacheの連携を取るためのモジュール)

**** ファイルのダウンロード
- https://tomcat.apache.org/connectors-doc/index.html
- tomcat-connectors-1.2.50-src.tar.gz

**** モジュールのコンパイルとインストール
 # zcat tomcat-connectors-1.2.50-src.tar.gz | tar xfv -
 # cd tomcat-connectors-1.2.50-src/native
 # ./buildconf.sh
 # ./configure --with-apxs=/usr/local/apache/bin/apxs  (Apache apxs パス)
 # make
 # make install

**** モジュールの設定
 # mkdir /usr/local/tomcat/conf/jk/
 # chmod a+rx /usr/local/tomcat/conf/jk/

- ワーカファイル ''[[workers.properties>https://polaris.star-dust.jp/Linux/tomcat/workers.properties]]'' を /usr/local/tomcat/conf/jk/ にコピーする

*** Apacheの設定
- /usr/local/apache/conf/httpd.conf の最後の方の下記(赤字)の一行を有効にする. もしなければ書き足す.

 Include "/usr/local/tomcat/conf/mod_jk.conf"

- mod_jk.so の設定ファイル ''/usr/local/tomcat/conf/[[mod_jk.conf>https://polaris.star-dust.jp/Linux/tomcat/mod_jk.conf.html]]'' を作成する.

*** Tomcatの設定
- ''/usr/local/tomcat/conf/[[server.xml>https://polaris.star-dust.jp/Linux/tomcat/server.xml.html]]'' で 8080ポートを使用しないように変更する.

-- 変更箇所は ''[[server.xml>https://polaris.star-dust.jp/Linux/tomcat/server.xml.html]]'' の赤字の部分.ここで,''useBodyEncodingForURI="true"'' はPOSTで漢字コードが化けないようにするためのもの
-- もし IPv6 が動いているなら,サンプルの server.xml 中の 127.0.0.1 を ''::1'' に書き換える.

- Tomcat10 では デフォルトで /examples にアクセス制限が設定されている.
-- ''/usr/local/tomcat/webapps/examples/META-INF/[[context.xml>https://polaris.star-dust.jp/Linux/tomcat/context.xml.html]]'' で赤字の部分を追加して,アクセス制限をコメントアウトする.
*** Tomcatと Apacheの再起動
 # systemctl stop tomcat.service
 # systemctl restart apache.service
 # systemctl start tomcat.service

*** 動作の確認
- http://あなたのサーバのFQDNまたはIPアドレス/examples/   
- サーブレットが動くかどうか確認する
- JSPも確認する

** docBase 
- [[docBase>./docBase]]

** Samples
- [[Servlet>./Servlet]]
- [[JSP>./JSP]]

#br

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 ページ一覧 検索 最終更新   ヘルプ   最終更新のRSS