Напомню, что openssl по умолчанию не создает разделяемые библиотеки. Я делаю это:
./ Настроить --prefix = / usr / local / openssl linux-elf shared
Тогда вам все равно придется выполнить ldconfig, как указано выше. И скажите apache, где найти ssl-библиотеки.
Когда вы скомпилировали Apache, у вас должно быть "--enable-so". Я думаю, вы должны это сделать, потому что модуль so пытается загрузить.
Также после компиляции openssl убедитесь, что система может найти разделяемую библиотеку с "/ sbin / ldconfig -v / usr / local / openssl / lib"
, и мне также нравится редактировать /etc/ld.so.conf.d/local.conf, чтобы добавить строку для / usr / local / openssl / lib
Проверьте журналы SELinux. Вы должны пометить двоичные файлы соответствующим атрибутом SELinux.
Это определенно связано с неправильной установкой OpenSSL, как указывалось ранее. У вас должен быть / usr / local / ssl / lib в ld.so.conf, но попробуйте это с помощью следующей команды настройки Apache:
LDFLAGS=-L/usr/local/ssl/lib \
./configure \
--enable-ssl \
--enable-mods-shared=all \
--with-ssl=/usr/local/ssl
Кроме того, уверены ли вы, что сам OpenSSL компилируется так, как задумано? Может быть, не удается создать сами разделяемые библиотеки и вернуться к статическому состоянию, но компиляция по-прежнему выполняется успешно?
ldd mod_ssl.so libssl.so.6 => /lib64/libssl.so.
будет означать, что вы не устанавливаете ссылку на openssl в / usr / local. выполните «make clean && makedistclean» для обеих сборок apache / openssl, затем перестройте / установите openssl. ./configure [ваши параметры] apache и проверьте его config.log, чтобы убедиться, что он связан с правильной библиотекой openssl.
в качестве альтернативы, предоставьте вывод вашего существующего config.log
Снова возникла та же проблема через несколько минут, поэтому я добавляю:
LDFLAGS=-L/usr/local/ssl/lib
и параметр для ./configure (Apache) изменен с:
--with-ssl=/usr/local/ssl
на
--with-ssl=/usr/local/ssl/lib
, и все в порядке.