Назад | Перейти на главную страницу

Apache SSL в 64-битной Windows (недопустимое приложение 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 использовать SSL в 64-битной системе (желательно таким образом, чтобы это было совместимо с 32-битной системой)?

С помощью Монитор процесса, Я наблюдал за доступом к файлам и записям реестра, которые Apache делает при загрузке.

Я заметил, что httpd загружает файл libeay32.dll в конце трассировки (непосредственно перед ошибкой). Я пробовал поставить копию libeay32.dll из 64-битный пакет Apache Я получил из ApacheLounge в Apache bin каталог, но по-прежнему выдает ту же ошибку. (Полагаю, это не должно быть сюрпризом, потому что файл, который он ранее загружал, был уже 64-битной копией из какой-то папки, которая находится в PATH- где установлен один из 64-битных драйверов ноутбука.)

Затем я поставил 32-битный копия libeay32.dll (и ssleay32.dll) что я получил из стандартного пакета, et voilà! Apache работает с поддержкой SSL в 64-битной системе! Более того, поскольку копия libeay32.dll 32-битный, он по-прежнему работает в 32-битной системе без модификации (т.е. никакого обнаружения системы и замены файлов или даже взлома conf-файла)!

(Я рад, что поместил сообщение об ошибке в заголовок вопроса, потому что, надеюсь, это поможет направить других, решивших эту проблему, с которой я боролся несколько месяцев, на эту страницу, где они, наконец, смогут найти решение. ☺)

У нас есть 64-битный mod_jk.so, который можно скачать с Вот по версии. Надеюсь, это поможет.