移植可能な(相対パス)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ビットシステムと互換性のある方法)を知っている人はいますか?
Process Monitor を使用して、ロード時にApacheがファイルとレジストリエントリにアクセスすることを確認しました。
httpd
がトレースの最後(エラーが発生する直前)にlibeay32.dll
ファイルをロードしていることに気付きました。 64ビットApacheパッケージからのlibeay32.dll
のコピーを入れてみました Apacheのbin
ディレクトリにあるApacheLoungeから取得しましたが、それでも同じエラーが発生しました。 (以前にロードしていたファイルが、PATH
にあるいくつかのフォルダーからの64ビットコピーであり、ラップトップの64ビットドライバーの1つがあるため、これは驚くべきことではないと思いますインストールされています。)
次に、標準から取得したlibeay32.dll
(とssleay32.dll
)の32ビットコピーを置きますパッケージ、ボイラ! Apacheは64ビットシステムでSSLをサポートして実行されます!さらに、libeay32.dll
のコピーは32ビットであるため、32ビットシステムでも変更なしで実行できます(つまり、システムを検出せず、ファイルまたはconf-file hacks)!
(エラーメッセージを質問のタイトルに入れてよかったです。このメッセージが他の人にこの問題(私が数か月間苦労して苦労しました)をこのページに誘導し、最終的に解決策を見つけるのに役立つことを願っています。☺)
64ビットmod_jk.soがあり、バージョンごとに here からダウンロードできます。お役に立てれば幸いです。