#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