こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

TomcatとApacheの連携(mod_jk2)が作成できず、困っています。

宜しくお願い致します。

【環境】
OS:Red Hat ES Linux AS3.0
tomcat:5.0.2
Apache:2.0.52
j2sdk :1.4.2_06

この状態でmod_jk2をコンパイルしようとしています。
jakarta-tomcat-connectors-jk2-2.0.4-src.tar.gz

解凍して、移動します。
jakarta-tomcat-connectors-jk2-2.0.4-src/jk/native2

ここで、
./configure --with-apxs2=/usr/sbin/apxs
と実行したのですが、

need to check for Perl first, apxs depends on it...
checking for perl... /usr/bin/perl
could not find /usr/sbin/apxs
configure: error: You must specify a valid --with-apxs2 path

とエラーになって、makeコマンドまでたどり着きません。
実際にllで/usr/sbin/apxsをしらべたら
-rwxr-xr-x 1 root root 22796 2月 7 2007 /usr/sbin/apxs
と誰でも実行権はあります。

./configureはなぜこのapxsをみつけることができないのでしょうか?
また、どのようにしたらこの./configureを完了させ、
makeすることができるのでしょうか?

よろしくご教授ください。

投稿日時 - 2007-02-07 22:14:35

QNo.2733062

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

>httpd-2.0.52-1.i386.rpm
>httpd-devel-2.0.52-1.i386.rpm

これはRed Hatが作成したRHEL3用パッケージではなくて、もしかしたらApacheのオフィシャルサイト(httpd.apache.org)にあるパッケージでしょうか?

>他のサーバで同じOS(Apacheバージョン,tomcatバーションも同じ)サーバから、
>機能しているmod_jk2を持ってきて、現在コンパイルできないOSに組み込み、
>apacheとtomcatを連携することは可能なのでしょうか??

たぶん、大丈夫だと思いますよ。

あとは、

>unless (grep /mod_so/, `. $envvars && $httpd -l`) {

/usr/sbin/envvars(ライブラリの検索パス用環境変数の設定他)を作成するか、apxs内にある上記部分を

>unless (grep /mod_so/, `$httpd -l`) {

に変えたら通りそうな気はしますが。

投稿日時 - 2007-02-08 22:49:44

お礼

お応えありがとうございます!

mod_jk2できました!
そしてmoduleにmod_jk2.soを入れて、
設定ファイルを編集しました。

手順としまして、
1) tomcat起動
2) apache起動
3) http://IPアドレス/ にアクセスする。
  →「tomcatの画面」が表示される。
4) apache停止
5) http://IPアドレス/ にアクセスする。
  →「ページが表示できません」と表示される。

これで連携できたと言えるでしょうか??

投稿日時 - 2007-02-09 18:16:34

ANo.2

>apxs:Error: Sorry, no shared object support for Apache.
>apxs:Error: available under your platform. Make sure.
>apxs:Error: the Apache module mod_so is compiled into.
>apxs:Error: your server binary `/usr/sbin/httpd'..

このメッセージをだけを見るとモジュールmod_soがhttpd(Apache)にスタティックで組み込まれていない、つまりDSO(Dynamic Shared Object)が有効になっていないと言っていますね。

apxs(手元にある2.2.3のapxs)の該当部分は、

>unless (grep /mod_so/, `. $envvars && $httpd -l`) {
> error("Sorry, no shared object support for Apache");
> error("available under your platform. Make sure");
> error("the Apache module mod_so is compiled into");
> error("your server binary `$httpd'.");
> exit 1;
>}

のようですから、上記の「$envvars && $httpd -l」

>sh: line 1: /usr/sbin/envvars: そのようなファイルやディレクトリはありません

のエラーのために、httpd -lが実行されずにDSOが有効ではない事になっていますね。

ただ、手元にRHELのインストールCDがあったので、その中にあったapxsが含まれるパッケージ(httpd-devel 2.0.46かな)をrpm2cpioで展開してapxsを見てみるとenvvarsを使用しないように見えます。

httpd本体のパッケージの中には、apxsは含まれていませんので、別途インストールしていると思うのですが、質問者の方はapxsをどのようにインストールしたのでしょうか?

投稿日時 - 2007-02-08 17:08:31

補足

お応えありがとうございます。

apxsはhttpd-devel-2.0.52-1.i386.rpmを使いました。
# rpm -ivh httpd-devel-2.0.52-1.i386.rpm
でインストールしました。
(apacheはhttpd-2.0.52-1.i386.rpmを使いました。)

また、私は最終的にはTomcatとApacheの連携(mod_jk2)をしたいと考えています。
他のサーバで同じOS(Apacheバージョン,tomcatバーションも同じ)サーバから、
機能しているmod_jk2を持ってきて、現在コンパイルできないOSに組み込み、
apacheとtomcatを連携することは可能なのでしょうか??

投稿日時 - 2007-02-08 17:24:06

ANo.1

> ${APXS2} -q PREFIX >/dev/null 2>/dev/null || apxs_support=false

> if ${TEST} "${apxs_support}" = "false" ; then
> echo "$as_me:$LINENO: result: could not find ${APXS2}" >&5
>echo "${ECHO_T}could not find ${APXS2}" >&6
> { { echo "$as_me:$LINENO: error: You must specify a valid --with-apxs2 path" >&5
>echo "$as_me: error: You must specify a valid --with-apxs2 path" >&2;}
> { (exit 1); exit 1; }; }
> fi

上記が、
>could not find /usr/sbin/apxs
>configure: error: You must specify a valid --with-apxs2 path
を出力している部分。

apxs -q PREFIX を実行したとき、apxsが異常終了(終了ステータスが0以外)している時にそうなります。

実際に apxs -q PREFIX を実行すると正常終了(終了ステータスが0)になっていますか?

例) FreeBSDで行った場合(正常終了)
・シェルがsh系
# apxs -q PREFIX
/usr/local
# echo $?
0

・シェルがcsh系
# apxs -q PREFIX
/usr/local
# echo $status
0

例) FreeBSDで行った場合(わざと異常終了)
・シェルがsh系
# apxs -q PREFIXX
apxs:Error: Invalid query string `PREFIXX'.
# echo $?
1

・シェルがcsh系
# apxs -q PREFIXX
apxs:Error: Invalid query string `PREFIXX'.
# echo $status
1

投稿日時 - 2007-02-07 23:14:07

お礼

さっそくのご対応ありがとうございます。
apxsがそのようになっているのに気づきませんでした。

# apxs -q PREFIX
sh: line 1: /usr/sbin/envvars: そのようなファイルやディレクトリはありません
apxs:Error: Sorry, no shared object support for Apache.
apxs:Error: available under your platform. Make sure.
apxs:Error: the Apache module mod_so is compiled into.
apxs:Error: your server binary `/usr/sbin/httpd'..
と以上終了してしまい、apxs自体が上手く動いていないのですね。

実際に/usr/sbin/envvarsを調べたら、
そのようなファイルが無いと検出されました。
このファイルはどのようにしたら入手できるのでしょうか?
ちなみに、apacheは.rpmパッケージでインストールしました。

投稿日時 - 2007-02-08 12:01:36