Install & Execute[edit]
- Tomcat10 を動かすには JDK-21 が必要
dnf install -y java-21-openjdk
dnf install -y java-21-openjdk-devel
Download[edit]
use Binary[edit]
# 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[edit]
8080ポートを開ける[edit]
# firewall-cmd --add-port=8080/tcp --permanent
# firewall-cmd --reload
# cd /usr/local/tomcat/bin
# ./startup.sh
# ./shutdown.sh
Service[edit]
Apache との連携[edit]
アプリケーションサーバ[edit]
- サーバ側でアプリケーション(スクリプト)を実行する部分を切り離し,独立したサーバにしたもの.
- Webサーバと同じマシンで実行される場合もあるし,複数のアプリケーションサーバで負荷分散を行なう場合もある.
- Webブラウザ <-----> Webサーバ <-----> アプリケーションサーバ <-----> データベース
- Webサーバ(apache)とアプリケーションサーバ(tomcat)の間でやり取りを行なうのが,JKコネクタである.
- JKコネクタには幾つかバージョンが存在するが,ここでは mod_jk を使用する.
apacheから tomocatへリクエストが渡される手順 (通常のCGIやPHPよりはかなり複雑)[edit]
- 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の連携を取るためのモジュール)[edit]
ファイルのダウンロード[edit]
モジュールのコンパイルとインストール[edit]
# 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
モジュールの設定[edit]
# mkdir /usr/local/tomcat/conf/jk/
# chmod a+rx /usr/local/tomcat/conf/jk/
- ワーカファイル workers.properties を /usr/local/tomcat/conf/jk/ にコピーする
Apacheの設定[edit]
- /usr/local/apache/conf/httpd.conf の最後の方の下記(赤字)の一行を有効にする. もしなければ書き足す.
Include "/usr/local/tomcat/conf/mod_jk.conf"
- mod_jk.so の設定ファイル /usr/local/tomcat/conf/mod_jk.conf を作成する.
Tomcatの設定[edit]
- /usr/local/tomcat/conf/server.xml で 8080ポートを使用しないように変更する.
- 変更箇所は server.xml の赤字の部分.ここで,useBodyEncodingForURI="true" はPOSTで漢字コードが化けないようにするためのもの
- もし IPv6 が動いているなら,サンプルの server.xml 中の 127.0.0.1 を ::1 に書き換える.
Tomcatと Apacheの再起動[edit]
# systemctl stop tomcat.service
# systemctl restart apache.service
# systemctl start tomcat.service