• ベストアンサー

Apache HTTP Serverプラグインのコンフィグレーションでエラーが発生する

【環境】 linux5.1 Apache2.2.3 WebLogic8.1 Apache HTTPサーバから WebLogic Serverへリクエストをプロキシするための環境構築をしています。 下記URLを参考に環境構築していますが、最後のhttpd.confファイルの検証のところでエラーが示され、解決できません。 http://otndnld.oracle.co.jp/document/products/wls/docs92/plugins/apache.html エラー内容は、「libCrun.so.1 : ELF file data encoding not little-endian」です。 libCrun.so.1は、usr/libに配置しています。 ※mod_wl_22.soはmodulesに配置しています。 多数のサイトを見ていろいろ試してみてはいますが、一向に解決できません。 もしこのエラーについてご存じの方がいらっしゃいましたら、ご教授願います。

質問者が選んだベストアンサー

  • ベストアンサー
  • onosuke
  • ベストアンサー率67% (310/456)
回答No.2

WebLogicサーバとApacheHTTPサーバが別OS、別機種ではありませんか? WebLogicサーバとApacheHTTPサーバが別OS、別機種なのに 「WebLogicサーバOS」用のApacheHTTPServerプラグインを導入していませんか? # 本来は、「ApacheHTTPサーバOS」用のapacheプラグインを # 利用しなければならない。 もし、上記に該当するならば、対処として、 「ApacheHTTPサーバOS」用のWebLogicサーバプラグインを入手して、導入しなおす必要があります。 >エラー内容は、 >「libCrun.so.1 : ELF file data encoding not little-endian」 このエラーメッセージは、他OS向けや他機種向けのプログラム(共有ライブラリやプラグインも含む)を実行しようとしたときに表示されるものです。 # 所謂テキストファイルの文字コードとは全く関係ありません。

goo1981080
質問者

補足

onosukeさんご回答ありがとうございます。 説明不足で申し訳ありませんが、onosukeさんのおっしゃる通り WebLogicサーバーとApacheHTTPサーバーは別OS、別機種です。 詳しくは、WebLogicサーバーがSolaris、ApacheHTTPサーバーはRedHat Linuxです。 >「WebLogicサーバOS」用のApacheHTTPServerプラグインを導入していませんか? 特に意識していたわけではありませんが、参考にしていたページを見てみると確かに「WebLogic Server における Web サーバ プラグインの使い方」と題名になっています。 >「ApacheHTTPサーバOS」用のWebLogicサーバプラグインを入手して、導入しなおす必要があります。 こちらに関してプラグインを入手するために関連ページを探していますが、今現在ヒットしておりません。 もし関連ページをご存じでしたらご教授ください。

その他の回答 (3)

  • onosuke
  • ベストアンサー率67% (310/456)
回答No.4

>[エラー] >httpd: Syntax error on line xxx of /etc/httpd/conf/httpd.conf: >API module structure 'weblogic_module' in >file /etc/nttpd/modules/mod_wl_20.so is garbled - perhaps this >is not an Apache module DSO? このエラーは、サーバとモジュール、 両者の「MODULE_MAGIC_COOKIE」不一致が原因で発生します。 「MODULE_MAGIC_COOKIE」は、apache2.0, 2.1, 2.2 でそれぞれ異なる値を利用するので、言い換えれば、 サーバとモジュール、両者のバージョン不一致が原因です。 >Apache2.2.3の場合、 >mod_wl_20.soは互換性がないため、 >対応策として、Apache2.0などに変更する必要があるのでしょうか? ご明察。その通りです。

goo1981080
質問者

お礼

onosukeさんご回答ありがとうございます。 最終的に、apache2.0.62をインストールし直し、結果として Apache HTTP Serverプラグインは正常にインストールされることを 確認いたしました。 もっと早くからダウングレードすればよかったのに…とも思いますが、 いろいろ試してみて良い勉強になりました。 また機会がありましたら、よろしくお願い致します。

  • onosuke
  • ベストアンサー率67% (310/456)
回答No.3

WebLogic8.1なので、マニュアルは下記のモノが正しく。。。 http://otndnld.oracle.co.jp/document/products/wls/docs81/plugins/apache.html#100375 WL_HOME/server/lib/linux/i686 ←Linux 32bitカーネル用のモジュール 配下のファイルを利用すべきかと。 # もし、Linux 64bitカーネル(x86_64)を利用している場合は、 # 対応するモジュールがWebLogic8.1には含まれていません。

goo1981080
質問者

補足

onosukeさんご回答ありがとうございます。 >WL_HOME/server/lib/linux/i686 ←Linux 32bitカーネル用のモジュール >配下のファイルを利用すべきかと。 Linuxは32ビットマシンですので、上記i686ディレクトリ中のmod_wl_20.soを/etc/httpd/modulesディレクトリ中にインストールし、apachectl -tを実行しましたが、以下のエラーが示されました。 [エラー] httpd: Syntax error on line xxx of /etc/httpd/conf/httpd.conf: API module structure 'weblogic_module' in file /etc/nttpd/modules/mod_wl_20.so is garbled - perhaps this is not an Apache module DSO? mod_wl_20.soは文字化けしていると示されていますが、実際は文字化けではなくモジュールの互換性がないのだと考えています。 Apache2.2.3の場合、mod_wl_20.soは互換性がないため、mod_wl_22.soでなければダメなのかと…。 対応策として、Apache2.0などに変更する必要があるのでしょうか? 度々の質問で申し訳ございませんが、ご存じであればご教授願います。

回答No.1

Apacheにそんなに詳しくないんですが、メッセージからすると一見、文字コードの問題のように見えます。 ”libCrun.so.1”はライブラリーファイルですよね。リンク先が違っていませんかね。usr/libとありますが、Apacheの配下のものか、/usr/libに配置するかですかね。lddコマンドでも確かめられますね。環境変数の設定でも変えられますね。下手すると、再アーカイブして、makeしないとだめかも。 このエラーが最終的なエラー出なければ、他のデーモンが起動していないか、他のプロセスのえらーかと。 本当にユニコードファイルになっていないのかもしれませんが、下記のURLを見ると、 http://forums.devshed.com/java-help-9/mod-jk-erro-elf-not-big-endian-19688.html http.confなどのミスでも似たようなエラーがでますね。そうなってくると、 「httpd.conf ファイルへの weblogic.conf ファイルのインクルード」 で、参照するパスや、書き換えがうまくいっていないような気がします。つまり、プラグインのインストールがうまくいっていないか、インストールは成功していても、それによる環境ファイルの書き換えがうまくいっていないかです。 そうなってくると 「mod_so.c がリストにない場合は、次のオプションがコンフィグレーションされるように、Apache HTTP サーバを再構築する必要があります。 」 は確実にやったのでしょうか? 再コンパイルすることになっていますが? などなど、どうも最初の設置から確かめる必要があり、なんとも言えません。混乱させてしまったらごめんなさい。

goo1981080
質問者

お礼

bakakyatapさんご回答ありがとうございます。 libCrun.so.1を/usr/libに配置する前は、「libCrun.so.1:cannot open shared object file: No such file or directory」と表示され、/usr/libに配置してからは今回の問題のエラーが示されています。 また、今回はコンフィグレーション ファイルを複数用意しないので、 「httpd.conf ファイルへの weblogic.conf ファイルのインクルード」 のようなことはしていません。 >「mod_so.c がリストにない場合は、次のオプションがコンフィグレーションされるように、Apache HTTP サーバを再構築する必要があります。 」 >は確実にやったのでしょうか? 再コンパイルすることになっていますが? これは、mod_so.cは有効になっていることをapachectl -lコマンドを実行して確認しています。 Apacheのバージョンが2.2.3なのでmod_wl_22.soファイルをAPACHE_HOME\modules ディレクトリに配置していましたが、試しに同じディレクトリにmod_wl_20.soファイルを配置しました。 すると結果は、「mod_wl_20.so : ELF file data encoding not little-endian」になります。 こうなるとやはり文字コードの問題なのでしょうか。。

関連するQ&A