我已经创build了一个可移植的(相对path)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所做的文件和registry项访问。
我注意到httpd在trace的结尾加载了文件libeay32.dll (就在它出错之前)。 我尝试从Apache的bin目录中的ApacheLounge获得的64位Apache包中放置一个libeay32.dll的副本,但它仍然给出了相同的错误。 (我想这不应该是一个惊喜,因为它之前加载的文件已经是来自某个文件夹的64位副本 – 在PATH – 安装了笔记本电脑的64位驱动程序之一)。
然后我把一个32位的libeay32.dll ( 和 ssleay32.dll )的副本,我从标准包中得到,等等! Apache在64位系统上运行SSL支持! 而且,因为libeay32.dll的副本是32位的,所以它仍然在32位系统上运行而不需要修改 (即不检测系统,replace文件甚至是conf文件)。
(我很高兴我把错误信息放在问题的标题中,因为它有希望帮助其他人解决这个问题 – 我经过了好几个月的努力 – 到了这个页面,他们终于可以find解决scheme了。
我们有64位的mod_jk.so,可以从这里下载的版本。 我希望这是有帮助的。