我创建了一个可移植的(相对路径)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 位系统兼容的方式)?
使用进程监视器,我观察了 Apache 在加载时进行的文件和注册表项访问。
我注意到在跟踪的末尾
httpd
加载文件(就在它出错之前)。libeay32.dll
我尝试将从 ApacheLounge 获得libeay32.dll
的64 位 Apache 包bin
的副本放入 Apache 的目录中,但它仍然给出相同的错误。(我想这应该不足为奇,因为它之前加载的文件已经是来自某个文件夹的 64 位副本 - 该文件夹位于PATH
- 笔记本电脑的 64 位驱动程序之一的安装位置。)然后,我放置了从标准包中获得的(和) 的32 位副本,等等!Apache 在 64 位系统上运行时支持 SSL!而且,因为 的副本是 32 位的,它仍然可以在 32 位系统上运行而无需修改(即没有检测系统和替换文件甚至 conf-file hacks)!
libeay32.dll
ssleay32.dll
libeay32.dll
(我很高兴我将错误消息放在问题的标题中,因为它有望帮助其他人解决这个问题——我为此苦苦挣扎了几个月——到这个页面,他们最终可以找到解决方案。☺)
我们有 64 位的 mod_jk.so,可以按版本从这里下载。希望对您有所帮助。