web-dev-qa-db-ja.com

64ビットWindows上のApache SSL(有効なWin32アプリケーションではありません)

移植可能な(相対パス)Apacheインストールを作成しました。 32ビットシステムでは問題なく動作しますが、64ビットシステムで実行しようとすると、次のエラーが発生します。

>httpd -t
httpd: Syntax error on line … of …/httpd.conf: Cannot load …/modules/mod_ssl.so into server: %1 is not a valid Win32 application.

SSL.confを含む行をコメント化すると、サーバーは64ビットシステムで実行されますが、もちろんSSLのサポートはありません。

私はこれを検索してみましたが、役立つものを見つけることができません。 Apacheが64ビットシステムでSSLを使用する方法(できれば32ビットシステムと互換性のある方法)を知っている人はいますか?

6
Synetech

Process Monitor を使用して、ロード時にApacheがファイルとレジストリエントリにアクセスすることを確認しました。

httpdがトレースの最後(エラーが発生する直前)にlibeay32.dllファイルをロードしていることに気付きました。 64ビットApacheパッケージからのlibeay32.dllのコピーを入れてみました ApacheのbinディレクトリにあるApacheLoungeから取得しましたが、それでも同じエラーが発生しました。 (以前にロードしていたファイルが、PATHにあるいくつかのフォルダーからの64ビットコピーであり、ラップトップの64ビットドライバーの1つがあるため、これは驚くべきことではないと思いますインストールされています。)

次に、標準から取得したlibeay32.dllssleay32.dll)の32ビットコピーを置きますパッケージ、ボイラ! Apacheは64ビットシステムでSSLをサポートして実行されます!さらに、libeay32.dllのコピーは32ビットであるため、32ビットシステムでも変更なしで実行できます(つまり、システムを検出せず、ファイルまたはconf-file hacks)!

(エラーメッセージを質問のタイトルに入れてよかったです。このメッセージが他の人にこの問題(私が数か月間苦労して苦労しました)をこのページに誘導し、最終的に解決策を見つけるのに役立つことを願っています。☺)

10
Synetech

64ビットmod_jk.soがあり、バージョンごとに here からダウンロードできます。お役に立てれば幸いです。

0
Airan