• 締切済み

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することができるのでしょうか? よろしくご教授ください。

みんなの回答

  • Lean
  • ベストアンサー率72% (435/603)
回答No.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`) { に変えたら通りそうな気はしますが。

yoyo808
質問者

お礼

お応えありがとうございます! mod_jk2できました! そしてmoduleにmod_jk2.soを入れて、 設定ファイルを編集しました。 手順としまして、 1) tomcat起動 2) apache起動 3) http://IPアドレス/ にアクセスする。   →「tomcatの画面」が表示される。 4) apache停止 5) http://IPアドレス/ にアクセスする。   →「ページが表示できません」と表示される。 これで連携できたと言えるでしょうか??

  • Lean
  • ベストアンサー率72% (435/603)
回答No.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をどのようにインストールしたのでしょうか?

yoyo808
質問者

補足

お応えありがとうございます。 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を連携することは可能なのでしょうか??

  • Lean
  • ベストアンサー率72% (435/603)
回答No.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

yoyo808
質問者

お礼

さっそくのご対応ありがとうございます。 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パッケージでインストールしました。

関連するQ&A

  • ApacheとTomcat5.0の連携でのエラー

    ApacheとTomcat5.0を連携させる段階で、自分ではどうにもできないエラーが出てきたので、対応策があるかどうかを教えて頂けると助かります。 環境ですが、 OS:Fedora Core 5 apache_1.3.29 tomcat-5.0.30 になります。エラーが起きるのは、jakarta-tomcat-connectors-jk2-2.0.2-src.tar.gzを展開させて、 [root src]# tar zxvf jakarta-tomcat-connectors-jk2-2.0.4-src.tar.gz [root src]# cd jakarta-tomcat-connectors-jk2-2.0.4-src/jk/native2/ [root native2]# ./configure --with-apxs=/usr/local/apache/bin/apxs --with-apr --with-apr-util の段階で出ます。内容ですが、エラー箇所の前後を載せておきます。 checking for mkdir... /bin/mkdir need to check for Perl first, apxs depends on it... checking for perl... /usr/bin/perl building connector for "apache-1.3" no apxs2 given checking checking for apache13...... not provided checking checking for apache20...... not provided checking checking for iis...... not provided checking checking for iPlanet...... not provided checking for tomcat33 location... not provided checking for tomcat40 location... not provided checking for tomcat41 location... not provided configure: error: valid apr source dir location required [root@master native2]# apache2とtomcat5.0の組み合わせでないと連携が難しいのか、単に環境的に不足しているものがあるのかだと思いますが、経験者の方でアドバイスを頂けると助かります。よろしくお願いします。

  • Apache Tomcat 連帯

    Apache Tomcatの連帯ができません。 cd jakarta-tomcat-connectors-1.2.15-src cd jk/native/ ./buildconf.sh ./configure --with-apxs=/usr/local/apache/bin/apxs --with-tomcat=/usr/local/tomcat make cd apache-1.3/ cp mod_jk.so.0.0.0 /usr/local/apache/libexec/mod_jk.so /usr/local/apache/bin/apachectl configtest のあと [error] Cannot remove module mod_jk.c: not found in module list となってしまいます。 ここから先どうすればいいのでしょうか? 環境 linux redhat 9 Apache 1.3.33 Tomcat 4.1.31 jakarta-tomcat-connectors-1.2.15-src.tar.gz

  • Apache2.0.48とTomcat4.1.29の連携に必要なmod_jk2について

    Windows環境で、 Apache2.0.48とTomcat4.1.29の連携を行いたいのですが、 mod_jk2のバイナリー版がApacheサイトには、 jakarta-tomcat-connectors-jk2.0.2-win32-apache2.0.43.zipしか存在しないようで す。 これは、Windows環境用のApache2.0.43環境で、 コンパイルされたmod_jk2のバイナリ版だと思うのですが、 Apache2.0.48でも利用できるのでしょうか? 利用できない場合、どのように対応すればよろしいでしょうか?

  • Apache-Tomcatを連携させる方法

    Tomcat4.1.30とApache2.0.55の連携についての質問になります。 連携させたいのですがどうしても上手くいきません。 環境 OS:Red Hat Enterprise Linux 5 Tomcat:Ver4.1.30 Apache:Ver2.0.55 JAVA :Ver1.4.2.10 になります。 不足情報がありましたら追記しますので仰ってください。 環境作成 1.Apache、Java、Tomcatをインストールしました  (1)Apacheインストール手順  # tar zxvf httpd-2.0.55.tar.tar  # cd httpd-2.0.55  # ./configure --enable-module=so --prefix=/usr/local/apache  # make  # make install  (2)Javaインストール手順  # sh j2sdk-1_4_2_10-linux-i586-rpm.bin  # rpm –ivh j2sdk-1_4_2_10- fcs-linux-i586.rpm  (3)Tomcatインストール手順  # tar zxvf jakarta-tomcat-4.1.31.tar.gz 2.次にApache-tomcatを連携させるmod_jkをコンパイルしました  (1)手順  # tar zxvf jakarta-tomcat-connectors-current-src.tar.gz  # sh buildconf.sh  # ./configure --with-apxs=/usr/local/apache/bin/apxs --with-tomcat41=/usr/local/tomcat --with-java-home=/usr/java/j2sdk1.4.2_10  # make 3.apacheの設定にmod_jkを認識させるため下記ファイルを編集しました。  (1)httpd.confに以下内容を追記  途中に追記  # LoadModule jk_module module /mod_jk.so  # <IfModule mod_jk.c> #  JkWorkersFile conf/workers.properties  #  JkLogFile logs/mod_jk.log  #  JkLogLevel warn  #  JkMount /examples/* ajp13  #</IfModule>  最終行に追記  #  Alias /examples "/usr/local/tomcat/webapps/examples"  #  <Location "/examples/">  #   Options Indexes FollowSymLinks  #  </Location>  #  <Location "/examples/WEB-INF/">  #   AllowOverride None deny from all  #  </Location>  (2)workers.propertiesに以下内容を編集・追記  編集  #  worker.list=ajp13  # worker.ajp13.port=8009  # worker.ajp13.host=localhost  # worker.ajp13.type=ajp13      最終行に追記  #  [uri:/aquatech/servlet/*]  # [uri:/aquatech/*.jsp]   上記内容のように変更致しました。 以前作成したサーバは、これだけの手順でTomcatとApacheの連携はできています。 しかし、今回のサーバはなぜかエラーが発生しました。 エラーログ /usr/local/apache/logs/mod_jk.logより抜粋 [Fri Feb 06 18:09:47 2009] [error] ajp_validate::jk_ajp_common.c (1815): can't resolve tomcat address localhost [Fri Feb 06 18:09:47 2009] [error] ajp_validate::jk_ajp_common.c (1818): invalid host andport localhost 8009 [Fri Feb 06 18:09:47 2009] [error] wc_create_worker::jk_worker.c (158): validate failed for ajp13 [Fri Feb 06 18:09:47 2009] [error] build_worker_map::jk_worker.c (256): failed to create worker ajp13 これにより、ポート8080接続(http://localhost:8080/examples/index.jsp)は表示されますが、 80接続(http://localhost/examples/index.jsp)では、500 Internal Server Errorの画面が表示されます。 3.(1)に追記した、mod_jk.soのLoadModule郡を全てコメントにすると、 エラーログは発生されず、80接続(http://localhost/examples/index.jsp)を表示すると、 jspファイルのソース中身が丸出しになった状態で表示されました。 また、http://localhost/examplesへ移動すると、 tomcatのwebappsの中にあるexamplesディレクトリ構造が表示されてしまいました。 tomcatもapacheも起動はしていますが、mod_jk.soの認識がされてないと 考えているのですが、結局解決策が全くわからない状態です。 どなたか、ご教示願いますでしょうか。 よろしくお願いします。

    • ベストアンサー
    • Java
  • tomcatについて

    tomcatについて教えていただきたいことがあります。 jakarta-tomcat-connectors-jk2-2.0.4-srcインストール、設定後 #service tomcat startを実行すると tomcat:unrecognized serviceと出てきます。 考えられる一番の原因は何になるのでしょうか。 よろしくお願い致します。

  • Tomcatの起動ができません。

    初めまして。 Tomcatについてなのですが、 インストール自体はできたみたいで、Tomcatのフォルダの直下のbinの直下のstartup.shを実行しても、 ---------------------------------------- [root@java bin]# ./startup.sh Using classpath: /usr/src/jakarta/jakarta-tomcat/lib/*:/usr/java/jdk1.3.0_02/lib /tools.jar [root@java bin]# ----------------------------------------- のようになり、Tomcatが起動されません。 何かわかることがありましたら、ご教授お願い致します。 ちなみに環境設定は以下のようにrootディレクトリ直下の.bashrcに設定しています。 export JAVA_HOME=/usr/java/jdk1.3.0_02 export PATH=$PATH:$JAVA_HOME/bin export TOMCAT_HOME=/usr/src/jakarta/jakarta-tomcat

    • ベストアンサー
    • Java
  • mod_jk.soがjakartaのサイトにない・・・

    mod_jk.soファイルを探してるのですが、 いろいろ参考サイトを見ていると下記のサイトにあるはずなんですが、なにもありません・・・。 http://apache.yubitoma.or.jp/jakarta/tomcat-connectors/jk/binaries/linux/ どうすれば手に入るでしょうか?

    • ベストアンサー
    • Java
  • apacheのインストールについて

    お世話になります。 Fedora4にアパッチをインストールしようとしています。ソースをダウンロードしてきて、最初にapxsへのパスを指定して./configureする必要があるとのことだったので、 ./configure --with-apxs=/usr/local/apache/bin/apxs を実行したのですが、 could not find /usr/local/apache/bin/apxs You must specify a vaild --with-apxs と怒られてしまいました。しかし自分が見る限りでは、/usr/local/apache/bin/の中にまちがいなくapxsというファイルが存在しております。 ./configureはなぜこのapxsをみつけることができないのでしょうか?また、どのようにしたらこの./configureを完了させ、makeすることができるのでしょうか? よろしくご教授ください。

  • Tomcat5.0.30とApache2.2.3の連携方法について

    Tomcat5.0.30とApache2.2.3を入れて、連携させたいのですがどうしても上手くいきません。 環境は OS:Windows XP Tomcat:Ver5.0.30 Apache:Ver2.2.3 です。 不足情報がありましたら仰って下さい。 Tomcat単体では左上にマークとVerが表示され、Apache単体ではIt works!と表示されます。 http://archive.apache.org/dist/tomcat/tomcat-4/archive/v4.0.1/bin/win32/webapp-module-1.0-tc40-windows.zip 上記URLからwebappをDLして、Apacheのmodulesフォルダに入れて、httpd.confの最後に " LoadModule webapp_module modules/mod_webapp.so WebAppConnection conn warp localhost:8080 WebAppDeploy examples conn /examples " の3行を追加してみたのですが上手くいかず http://www.apache.org/dist/tomcat/tomcat-connectors/jk2/binaries/win32/jakarta-tomcat-connectors-jk2.0.4-win32-apache2.0.49.zip こちらからmod_jk2.soをDLして入れ、workers2.propertiesファイルを新規製作し " [status:] [uri:/jkstatus/*] group=status: [shm:] disabled=1 [channel.socket:] [ajp13:] [uri:/servlets-examples/*] [uri:/examples/*] " とし、Apache/confフォルダに入れてみたのですが連携できていません。 httpd.confには LoadModule jk2_module modules/mod_jk2.so を最後に追加しました。 一応、ファイルを追加したり修正したりしたときは、Tomcat/Apache共に再起動をさせています。 どうしたらいいのでしょうか? また、httpd.confに行を追加するときは最初に"#"をつけているのですが、その他のファイルにもつけなくてはいけないのでしょうか? 教えていただけないでしょうか。 宜しくお願いします。

    • ベストアンサー
    • Java
  • apache2.2とtomcat5.5の連携

    http://oshiete1.goo.ne.jp/qa5793960.html 上記のとおり、apache2.0とtomcat5.5でmod_jk.soを使い連携をがんばってましたが、どうにもラチがあかないので、連携方法が簡単になったというapache2.2に切り替えました。 コンパイル+インストールは下記のとおり ./configure --prefix=/usr/local/apache2 --enable-proxy --enable-proxy-ajp --enable-so make make install /usr/local/apache2/conf/httpd.confは下記を追加 <Location /jsp-examples/> ProxyPass ajp://localhost:8009/jsp-examples/ </Location> <Location /servlets-examples/> ProxyPass ajp://localhost:8009/servlets-examples/ </Location> これで、tomcatとapacheを再起動 http://localhost:8080/jsp-examples/ = 正常に表示 http://localhost/jsp-examples/ = ページなし http://localhost/ = It works! やはり連携が成立しないのです。いったい何か足りないものがあるのでしょうか?どうぞ解決までご協力をお願いします。