はじめに |
この文書は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の動作のすべての情報を記録します。
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
|
|