Apache Software Foundation | Jakarta Project | Apache Tomcat
はじめに

この文書はTomcatを有名なオープンソースの Web サーバApacheに接続する方 法を説明します。 現在、Apacheには二つのバージョンがあります。 1.3と2.0の両方で、Tomcatリダイレクタモジュールのmod_jkを使用することができます。

Web サーバとTomcatエンジンの設定項目をどうやって設定するかを知るには、 ワーカの手引き もあわせて読むことをおすすめし ます。

この文書はGal Shachorによって書かれた Tomcat-簡易ユーザーガイド の一部でしたが、文書構成の変更により、分離されました。

文書の規約と仮定

${tomcat_home} はTomcatのルートディレクトリとします。 Tomcatをインストールすると以下のディレクトリができます。

  • ${tomcat_home}\conf - いろいろな設定ファイルを置く場所です。
  • ${tomcat_home}\webapps - サンプルアプリケーションが含まれています。
  • ${tomcat_home}\bin - Webサーバプラグインを置く場所です。

この文書中のすべての例では ${tomcat_home} を /var/tomcat3 とします。 ワーカ は TomcatのプロセスがApacheから受け付けられるよう定義されていることとします。


サポートする構成

mod_jkモジュールは下記の環境で開発され、テストされています。

  • Linux, FreeBSD, AIX, HP-UX, MacOS X, その他のApache 1.3 または 2.0の動く一般的な Unix プラットフォーム
  • WinNT4.0-i386 SP4/SP5/SP6a (おそらく他のサービスパックでも動くでしょう) Win2K、WinXP、Win98
  • Cygwin (Apacheとautoconf/automakeサポートツールが入っていること)
  • Netware
  • Apache 2.0.39 を動かしているiSeries V5R1 と V5R2。 最新のApache PTFがインストールされていることが必須。
  • Tomcat 3.2.x, Tomcat 3.3.x, Tomcat 4.0.x, Tomcat 4.1.x そして Tomcat 5

リダイレクタは ajp12 ajp13 を使って、 Tomcatコンテナにリクエストを送ります。 また、Tomcatをin-processで使うこともできます。 in-processモードについてはin process howtoを参照してください。


ajpプロトコルをサポートするソフトウェアは?

ajp12プロトコルは Tomcat 3.2.x と 3.3.xでのみ使用可能です。

ajp12 は Tomcat 3.3.xでは 推奨されません 。 代わりに ajp13 を使ってください。 これは唯一、Tomcat 4.0.x, 4.1.x と 5 で扱えるajpプロトコルです。

もちろんTomcat 3.2.x と 3.3.x は ajp13 プロトコルをサポートしています。

jetty のような他のServletエンジンでも ajp13 プロトコルはサ ポートしています。


どのように動作しますか?

簡単に説明すれば、WebサーバはクライアントのHTTPリクエスト常に待って います。 リクエストが届いたときには、サーバはあらかじめ必要なコンテンツを用意しておくことで、リクエストに必要な処理を行います。

Servletコンテナを追加すると、この動作が少し変わります。 つまり、Web サーバは以下の処理を実行する必要があります。

  • Servletコンテナアダプタライブラリをロードして、それを(リクエストを処理する前に)初期化します。
  • リクエストが届いた時に、そのリクエストをチェックし、Servletへのリクエストだった場合にはアダプターに渡して処理します。

ユーザが、バーチャルホストを使用するように設定したいと思っていたり、 複数の開発者に同じWeb サーバで異なるServletコンテナのJVMを動作させるようにしたいと思っている時には、さらに問題は複雑になります。 この二つの場合については、後から説明します。



mod_jkの入手

mod_jkは、2種類のフォーマット - バイナリとソース - で入手することができます。 Webサーバを動作させているプラットフォームによっては、mod_jkのバイナリ版が利用可能です。

バイナリ版が利用可能な場合には、それを使用することを勧めます。 バイナリが利用可能でない場合には、mod_jkをソースからビルドするために以下の指示に従ってください。

いくつかのプラットフォーム用のmod_jkのバイナリが、Tomcatのバイナリリリースとしてそれぞれ別の場所にあります。 これらのバイナリは、プラットフォームごとのサブディレクトリの中にあります。

Windowsのようないくつかのプラットフォームに対しては、大部分のWindowsシステムはCコンパイラを持たないことから、これがmod_jkを入手する代表的な方法です。

他のプラットフォームに対しても、mod_jkのバイナリ配布はインストールをより簡単にします。

たとえば、 JK 1.2.1 は以下のようなものを含んでいます

場所 内容
aix mod_jkを含む iSeries V5R1/V5R2用のApache 2.0用のSAVF
iseries mod_jkを含む iSeries V5R1/V5R2用のApache 2.0用のSAVF
linux いくつかのLinux アーキテクチャ用のmod_jk.so (Apache 1.3 標準API と EAPI と Apache 2.0)
macosx MacOS X用のmod_jk.so
netware Netware用のmod_jk.nlm と nsapi.nlm
rpms rpms (ソースとi386/ppcアーキテクチャ)
solaris6 Solaris 6用のmod_jk.so
solaris8 Solaris 8用のmod_jk.so
win32 他の便利なバイナリと同様な Windows 用のmod_jk.dll

もし、あなたの使っているオペレーティングシステムが見つからなければ、 この文書は古くなっているということですので、 ここ に行って、あるかどうか確かめてみてください。


インストール

mod_jk は2つのエンティティを必要とします。

  • mod_jk.xxx - 使用するオペレーティングシステムに依存するApacheモジュール。 mod_j.so、mod_jk.dll、mod_jk,nlm、やQZTCJK.SRVPGMなど。 (ビルドの項を参照してください)
  • workers.properties ワーカ(Tomcatのプロセス)によって使われるホストとポートを記述したファイル。 サンプルの workers.properties はconfディレクトリにあります。

他のApacheモジュールと同様に、mod_jkは、まずApache Web サーバの モジュールディレクトリ、例えば /usr/lib/apache、にインストールして、 httpd.conf ファイルを更新します。

古いmod_jservの無効化

すでに mod_jserv を使用するようにApacheを設定している場合には、httpd.confからすべての ApJServMount 宣言子を削除してください。

tomcat-apache.conf tomcat.conf をインクルードしている場合には、それらのファイルはmod_jserv固有なので、同様に削除します。

mod_jserv設定指示子は、mod_jkとは互換ではありません!


Tomcatのauto-configureの使用法

mod_jkを使用するようにApacheを設定する最も簡単な方法は、TomcatのApacheの自動設定設定を有効にして、次のinclude指示子をApacheのhttpd.confファイルの最後に記入することです(以下のTOMCAT_HOMEをあなたがTomcatをインストールした正しい場所に置換したことを確かめてください)。

httpd.confの最後に追加します。
Include /var/tomcat3/conf/jk/mod_jk.conf-auto

これは、Apacheの設定ファイル中で、 Apacheにmod_jk.conf-autoファイル中の指示子を使用することを指示します。 このファイルは、Tomcatの文書中で述べられているように、 Apacheの自動設定を有効にすることによって作成されます。


mod_jkのカスタム設定

以下のような場合、カスタム設定を行います。

  • TomcatエンジンがApache Web サーバと同じマシンで動いていないため、 mod_jk.conf-auto が使えない場合。 たとえば、Tomcat の集合(ファーム)の前にApacheがある場合。
  • カスタム設定が必要な他の条件として、 ISPのホスティングなど、それぞれが別々の設定ファイルを持つ、いくつもの異なった Tomcatエンジンの前にApacheがある場合。
  • また、すべてのApacheの Web マスターは、 必要に応じて設定を調整するために カスタム設定を維持しておきたいことでしょう。

簡単な設定のサンプル

以下は簡単な設定です。

# mod_jkモジュールをロードします
LoadModule jk_module libexec/mod_jk.so
# <IfModule> 指示子のための宣言
AddModule mod_jk.c
# workers.properties の場所
JkWorkersFile /etc/httpd/conf/workers.properties
# jk のログの場所
JkLogFile /var/log/httpd/mod_jk.log
# jkのログレベルの設定 [debug/error/info]
JkLogLevel info
# ログ書式の選択
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
# JkOptions は SSL KEY SIZE を送ることを指定します
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat は リクエストログの書式を指定します。
JkRequestLogFormat "%w %V %T"
# /examplesコンテキストのServletを worker1と名付けられたワーカに送ります。
JkMount /examples/servlet/* worker1
# /examplesコンテキストのJSPを worker1と名付けられたワーカに送ります。
JkMount /examples/*.jsp worker1



mod_jk指示子

ここでは、mod_jkの指示子と、背景にある詳細を論じます。

ワーカの定義

JkWorkersFile はmod_jkがワーカの定義ファイルを探す場所を指示します。

JkWorkersFile /etc/httpd/conf/workers.properties




ログの記録

JkLogFile はmod_jkにログファイルの記録場所を指示します。

JkLogFile /var/log/httpd/mod_jk.log



JkLogLevel 以下の範囲でログレベルを設定します。

  • info ログはmod_jkの標準的な動作を記録します。(デフォルト)
  • error ログはエラーのレポートを記録します。
  • debug ログはmod_jkの動作のすべての情報を記録します。

JkLogLevel info

info は通常運用するとき、デフォルトの選択になります。

JkLogStampFormat は、mod_jkのログファイルに記録される日付/時刻フォーマットを設定します。 デフォルトは、strftime()フォーマット文字列を使用して、 "[%a %b %d %H:%M:%S %Y] " に設定されます。

JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "



JkRequestLogFormat はmod_jkで独立したリクエストログの書式を設定します。 リクエストログの記録はバーチャルホストごとに設定され、有効になります。 バーチャルホストのリクエストログの記録を有効にするには、 JkRequestLogFormatの設定を追加するだけです。 記録書式の文法は、ApacheのLogFormatコマンドと同一です。 利用可能なリクエストログの書式のオプションは以下に挙げるとおりです。

オプション 説明
%b HTTPヘッダを含む送信バイト数 (CLF形式)
%B HTTPヘッダを含まない送信バイト数
%H リクエストプロトコル
%m リクエストメソッド
%p サーバがリクエストに応えている正規化されたポート
%q クエリー文字列 (クエリー文字列があった場合、? が頭につく。その他の場合、空の文字列)
%r リクエストの最初の行
%s リクエストのHTTPステータスコード
%T リクエストの接続時間。秒.ミリ秒の形式で経過時間。
%U リクエストされたURLパス。クエリー文字列を含まない。
%v リクエストに応えている正規化されたサーバ名
%V UseCanonicalName の設定によるサーバ名
%w Tomcatワーカ名

JkRequestLogFormat "%w %V %T"




転送

JkOptions 指示子では いくつもの転送オプションを有効(+)か無効(-)か 以下のようにセットできます。

JkOptions の ForwardKeySize はajp13を使っているとき、mod_jkに Servlet API 2.3で要求されているSSLキーサイズを転送するよう設定します。 このフラグはTomcat 3.2.xでは(デフォルト状態では)設定するべきではありません。

JkOptions +ForwardKeySize



JkOptions の ForwardURICompat は mod_jkに URI を普通に Tomcat に送るよう設定します。 これは仕様を満たしていませんが、mod_rewriteに互換があります。 Tomcat 3.2.xエンジン(デフォルト状態で)の互換性を持たすために使用します。

JkOptions +ForwardURICompat



JkOptions の ForwardURICompatUnparsed は転送されたURIを解釈しません。 これは仕様にしたがっていますが、mod_rewrite は動作しません。

JkOptions +ForwardURICompatUnparsed



JkOptions の ForwardURIEscaped は転送されたURIをエスケープします。 Tomcat (3.3 rc2以降) はデコード処理を行います。

JkOptions +ForwardURIEscaped



JkOptions の ForwardDirectories はApache Web サーバの DirectoryIndex 指示子と関連して使われます。 静的か、動的(DSO)かいずれの形で、Apacheのmod_dir が有効になっている必要が あります。

DirectoryIndex が設定されていた場合、 Apacheは 一致するローカルファイルが存在するかどうか決定するために、 この指示子で指定されたローカルURLのそれぞれに対する副問い合わせ を生成します。 (これらはファイルのstatを取ることで実行されます。)

ForwardDirectories がfalse (デフォルト)に設定されていた場合で、 Apacheが一致するファイルを見つけられなかった場合、 Apacheはディレクトリの一覧を提供します (指示子のオプションでそのディレクトリに対してIndexesが指定されていた場合)。 または、403 Forbidden を応答します (指示子のオプションでそのディレクトリに対してIndexesが指定されていなかった場合)。

ForwarDirectories が true に設定されていた場合、 Apacheは一致するファイルを探しません。 リクエストは解決されるためにTomcatに転送されます。 これは、 いくつかの理由で Apacheがインデクスファイルを見つけられない場合、 たとえばTomcatが違うマシンで動いていた場合や、 JSPファイルがプリコンパイルされていた場合などに使われます。

ローカル的に見られるファイルはTomcatからのみ見られるものより優先されること を注意してください。 (たとえば、Apacheがファイルを見つけられるとき、それが提供されます。) このことはVelocityやJSPページのように、 Tomcatが通常提供するファイル形式以上のものが存在する時に重要になります。

JkOptions +ForwardDirectories



JkEnvVar 指示子は ApacheからTomcatへ環境変数を転送することを許可します。

JkEnvVar SSL_CLIENT_V_START




TomcatにURLを割り当てる

もしあなたが上記のようにmod_jk.conf-localのカスタマイズしたまたはローカルのバージョンを作成するならば、あなたはそのワーカまたはURLのプリフィックスのように設定を変更することができます。

JkMount 指示子はTomcatにURLを割り当てます。 一般的な、JkMount指示子の構成を、以下に示します。

# .jspで終わるすべてのリクエストをworker1に送ります。
JkMount /*.jsp worker1
# /servlet で終わるすべてのリクエストをworker1に送ります。
JkMount /*/servlet/ worker1
# /otherworker に置いたすべてのjspリクエストをworker2に送ります。
JkMount /otherworker/*.jsp worker2

トップレベルか、あなたのhttpd.confファイルの<VirtualHost>セクションの中で、JkMount指示子を使用することができます。


静的 Web アプリケーションのファイルを扱うためのApacheの設定

TomcatのホストのappBase (webapps)ディレクトリがApache Web サーバでアクセスできるようになっているとき、 Apacheは Web アプリケーションコンテキストディレクトリの静的なファイルを Tomcatにリクエストする代わりに、提供できるように設定できます。

注意: もしApacheが Web アプリケーションの静的なページを提供するよう設定されていた場合、 Web アプリケーションの設定ファイルweb.xmlで設定されている、 セキュリティ制限が迂回されます。

Apacheの Alias 指示子を、 単一の Web アプリケーションコンテキストディレクトリを ApacheのVirtuelHostのドキュメント空間に割り当てるために使ってください。

# サンプル webapp の静的なファイルをApacheが提供します。
Alias /examples /vat/tomcat3/webapps/examples
# 以下の行でユーザーがWEB-INFに直接アクセスすることを禁止します。
<Location "/examples/WEB-INF/">
AllowOverride None
deny from all
<Location>
# 全てのJSPは worker1に行きます。
JkMount /*.jsp worker1
# 全てのServletは worker1に行きます。
JkMount /*/servlet/ worker1

mod_jk の JkAutoAlias 指示子は 全ての Web アプリケーションコンテキストディレクトリを Apacheのドキュメント空間に割り当てるために使ってください。

Web アプリケーションコンテキスト、または TomcatホストのappBase (webapps)ディレクトリの Web アーカイブ *.war の中のWEB-INFやMETA-INFにアクセスすることを試みた場合、 HTTP 403, Access Forbiddenとなって失敗します。

# Tomcatのwebappコンテキストディレクトリにある全ての静的なファイルをApacheが提供します。
JkAutoAlias /var/tomcat3/webapps
JkMount /*.jsp ajp13
JkMount /*/servlet/ ajp13



Unix上での mod_jk のビルド

mod_jkのビルドは広く使われているconfigureシステムを使用しています。

CVSから取得した mod_jk を configure するための準備

ソースをCVSから取得する場合、 たとえば今あるconfigureスクリプトを使わないとき、 設定とインストールにautoconf使う必要があります。

jakarta-tomcat-connectorsの autoconf スクリプトを生成するには、 libtool 1.3.3 以上、autoconf 2.13 より新しいもの使う必要があります。

これらのツールは、 apache.orgからパッケージをダウンロードして使うだけの場合は 必要ではありません。開発者にのみ必要です。

configureスクリプトを生成するには以下のように入力します。

[user@host] ~ $ ./buildconf.sh


configure を使った mod_jk のビルド

mod_jkの構築の準備をするため、configureを使うには、以下のように入力します。

./configure [autoconf 引数] [jakarta-tomcat-connectors引数]

いくつかのプラットフォーム固有の部分を追加するために、 CFLAGS LDFLAGS をセットできます。

[user@host] ~ $ LDFLAGS=-lc ./configure -with-apxs=/home2/local/apache/bin/apxs

Apache 1.3と2.0でmod_jkを構築するには、

  • configure を使って、Apache 1.3 の apxsの場所を指示します。(--with-apxs)
  • makeを使います。
  • mod_jk のバイナリをApache モジュールの置場所にコピーします。
  • make clean します。(前項でコンパイル済のモジュールを削除するため。)
  • configure を使って、Apache 2.0 のapxsの場所を指示します。
  • makeします。


configure の引数

Apacheに関連するパラメータ
--with-apxs[=FILE] FILE はapxsツールの場所です。デフォルトで、PATHから探します。 これはApacheの共有モジュールを構築します。 Apacheのバージョン(2.0か1.3か)を自動で識別します。
--with-apache=DIR DIR はApacheのソースの場所です。 Apacheのソースはmod_jkの設定より前に設定されている必要があります。 DIR は /home/apache/apache_1.3.19のようになります。 これはApacheの静的モジュールを作成します。
--enable-EAPI このパラメータはApache-1.3とmod_sslを使うときに必要になります。 それ以外の場合、httpdがmod_jk.so を読み込んだときに "this module might crash under EAPI!" というエラーメッセージが表示されるようになります。--with-apxs が使われていた場合、必要ありません。

JNI に関連するパラメータ
--enable-jni JNIワーカをビルドします。そしてビルドプロセスはJavaの環境の情報を必要とします。
--with-java-home=DIR DIR は JDKのルートディレクトリのパスです。(訳注:原文はpatchとなっているがpathの間違いだと思われる。) /opt/java/jdk12のようになります。
--with-os-type=SUBDIR SUBDIR はos-typeサブディレクトリです。 configure はおそらく正しく認識します。
--with-arch-type=SUBDIR SUBDIR は arch サブディレクトリです。 configure はおそらく正しく認識します。
--with-java-platform=VAL VAL はJavaプラットフォームです。1は1.1.x 、2 は 1.2 以降です。 configure はおそらく正しく認識します。


configureの使い方の例

Apache 1.3 と 2.0 のビルド
[user@host] ~ $ ./configure --with-apxs=/usr/sbin/apxs
[user@host] ~ $ make
[user@host] ~ $ cp ./apache-1.3/mod_jk.so /usr/lib/apache
[user@host] ~ $ make clean
[user@host] ~ $ ./configure --with-apxs=/usr/sbin/apxs2
[user@host] ~ $ make
[user@host] ~ $ cp ./apache-2.0/mod_jk.so /usr/lib/apache2

JNIをサポートしたApache 2.0 のビルド
[user@host] ~ $ ./configure --with-apxs=/opt/apache2/bin/apxs \
--with-java-home=${JAVA_HOME} --with-java-platform=2 \
--enable-jni

JNIをサポートしたApache 1.3 のビルド
[user@host] ~ $ ./configure --with-apxs=/usr/sbin/apxs



Windows NT/2K/XP 上での Apache 用の mod_jk のビルド

モジュールはVisual C++バージョン 6.0で開発されています。 カスタムビルドを行いたいのであれば、この環境が必要です。

手順は以下の通りです。

  • 使っているバージョンのApace 1.3 または Apache 2.0 のソースディレクトリに移ってください。
  • Apache 1.3のmod_jkをビルドしたい場合、 APACHE1_HOME 環境変数が、Apache1.3のインストール場所を指すように 設定します。 Apache 2.0のmod_jkをビルドしたい場合、 APACHE2_HOME 環境変数をセットします。
  • mod_jk.dllをApacheのモジュールディレクトリにコピーします。

Apache 1.3用にmod_jkをビルドする例です。

Apache 1.3 のソースの場所を指定
c:\> set APACHE1_HOME=c:\apache13
Apache 1.3のmod_jkのディレクトリに移動
c:\> cd c:\home\apache\jk\native\apache-1.3
MSDEVを使ってソースをビルド
c:\> MSDEV mod_jk.dsp /MAKE ALL
dllをApache のモジュールディレクトリにコピー
c:\> cp release\mod_jk.dll c:\apache13\modules\

Apache 2.0用にmod_jkをビルドする例です。

Apache 2.0 のソースの場所を指定
c:\> set APACHE2_HOME=c:\apache20
Apache 2.0のmod_jkのディレクトリに移動
c:\> cd c:\home\apache\jk\native\apache-2.0
MSDEVを使ってソースをビルド
c:\> MSDEV mod_jk.dsp /MAKE ALL
dllをApache のモジュールディレクトリにコピー
c:\> cp release\mod_jk.dll c:\apache20\modules\

msdevがパスの中にない場合、msdev.exeのフルパスを入力してください。 また、ApacheCore.libが ${APACHEEX_HOME}\src\CoreD の中に存在して、 ${APACHEX_HOME}\src\CoreR ディレクトリの前にリンクされる必要があります。 これらのライブラリを生成するためには、Apacheのソースをビルドする必要があります。 この方法でリダイレクタプラグイン(mod_jk)のリリース版とデバッグ版の両方を作成できます。 他にmsdevの mod_jk.dsp をオープンして、ビルドメニューを使って作成する方法があります。


iSeries/OS400 上での Apache 用の mod_jk のビルド

OS400 V4R5, iSeries (AS/400) は旧IBM Web サーバの置き換えで、 Apache 2.0をプライマリの Web サーバとして使用しています。 iSeriesでmod_jkをビルドすることが可能になりました。 IBMロチェスター研究所がmod_jkをOS400に適用させるための情報とパッチを提供してくれたおかげです。

Apache 2.0.39以上とCコンパイラとIFSが必要です。 Apache 2.0.39 はiSeries Apacheサーバのための最新のPTFセットを提供されています。 それらは http://www.ibm.com/servers/eserver/iseries/software/http/ で見つけることができます。

iSeries のmod_jkを設定するにはmod_jkのソースが提供するCLソースを使います。

  • 最新のmod_jk ソースを入手し、Windows か Unix 上でtarを展開します。
  • IFSにディレクトリを作ります。例えば、 /home/apache
  • jkのソースディレクトリをiSeries ディレクトリにFTPで送ります。
  • iSeries のコマンドラインに行きます。

mod_jk ライブラリを生成します。
===> CRTLIB MOD_JK TEXT('Apache mod_jk tomcat connector module')
サービスプログラムソースファイルを生成します。
===> CRTSRCPF MOD_JK/QSRVSRC TEXT('Service program source file')
CL ビルドプログラムソースファイルを生成します。
===> CRTSRCPF FILE(MOD_JK/QCLSRC) TEXT('Build program source file')
サービスプログラムソースファイルを編集します。
===> STRSEU MOD_JK/QSRVSRC MOD_JK

編集対象のファイルではjk_module のみエクスポートされるように指定します。

Columns . . : 1 71 Edit MOD_JK/QSRVSRC
SEU==> MOD_JK
*************** Beginning of data *************************************
0001.00 STRPGMEXP PGMLVL(*CURRENT)
0002.00 EXPORT SYMBOL("jk_module")
0003.00 ENDPGMEXP
****************** End of data ****************************************

mod_jkの全モジュールをビルドすることができます。

CL ビルドプログラムソースをIFSからコピーします。
===> CPYFRMSTMF FROMSTMF('/home/apache/jk/native/apache-2.0/bldjk.qcsrc') +
TOMBR('/QSYS.LIB/MOD_JK.LIB/QCLSRC.FILE/BLDJK.MBR') MBROPT(*REPLACE)
CL ビルドプログラムをビルドします。
===> CRTCLPGM PGM(MOD_JK/BLDJK) SRCFILE(MOD_JK/QCLSRC) TEXT('Apache mod_jk build program')
ビルドを開始します。
===> CALL MOD_JK/BLDJK
ビルドがうまく行ったら、できたmod_jk モジュールをコピーします。
===> CRTDUPOBJ OBJ(MOD_JK) FROMLIB(MOD_JK) OBJTYPE(*SRVPGM) TOLIB(QHTTPSVR) NEWOBJ(MOD_JK)

次にApache 2.0サーバを再起動して、 iSeries上でのオープンソースのひとかけらを満喫してください。


mod_jkをApacheに静的にリンク

mod_jk は静的にリンクされたmod_jkをつくるため、 mod_jkをApacheソースツリーのなかにインストールすることができます。 mod_jkをhttpd実行ファイルの中に入れることはいくつかのパフォーマンス改善をもたらします。 configureのオプション --with-apache はmod_jkをApacheソースツリーに インストールするように準備します。 --with-apache のオプションはApache-1.3と Apache-2.0で動作します。 以下の例は、httpdプロセスにmod_jkを組み込む方法です。

Apache-2.0へのインストール

/home/apache20/httpd-2.0.40 はhttpd-2.0のソースがあるディレクトリです。
[user@host] ~ $ ./configure --with-apache=/home/apache20/httpd-2.0.40
[user@host] ~ $ make
mod_jk ライブラリとその他 /home/apache20/httpd-2.0.40/modulesにあるディレクトリをインストールします。
[user@host] ~ $ make install
mod_jkの中 の config.m4 は httpd-2.0 の configure に追加されていなければならないため、Apacheを直接設定することはできません。
[user@host] ~ $ cd /home/apache20/httpd-2.0.40
[user@host] ~ $ sh buildconf
[user@host] ~ $ configure ... --with-mod_jk
[user@host] ~ $ make
[user@host] ~ $ make install

enable-jk=share と enable-jk=static はサポートしていません。 --with-mod_jk のみがmod_jkの静的リンクを許可します。


Apache-1.3へのインストール

/home/apache/apache_1.3.26 はapache-1.3のソースがあるディレクトリです。
[user@host] ~ $ ./configure --with-apache=/home/apache/apache_1.3.26
[user@host] ~ $ make
libjk ライブラリ、mod_jk.c、/home/apache/apache_1.3.26/src/modules/jk にあるその他のファイルをインストールします。
[user@host] ~ $ make install
Apache のソースを設定します。
[user@host] ~ $ cd /home/apache/apache_1.3.26
[user@host] ~ $ configure ... --enable-module=dir --disable-shared=dir \
--activate-module=src/modules/jk/libjk.a \
--disable-shared=jk
[user@host] ~ $ make
[user@host] ~ $ make install

--enable-shared=jk も有効で、dsoファイルを構築します。

Apache ソースのconfigureを変更します。
[user@host] ~ $ configure ... --enable-module=dir --enable-shared=dir \
--activate-module=src/modules/jk/libjk.a \
--enable-shared=jk



[訳注: これは新舘邦貴が翻訳しました。日本語訳に対するコメントがあれば、こちらに送って下さい。(角瀬和博氏および風間一洋氏の翻訳を参考にしました。)]