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