尝试使用最新的 openssl 从源最新的 apache 进行编译 - 对符号“dlclose@@GLIBC_2.2.5”的未定义引用

尝试使用最新的 openssl 从源最新的 apache 进行编译 - 对符号“dlclose@@GLIBC_2.2.5”的未定义引用

我需要使用 openssl 1.0.1i 安装 apache 2.4.10。我使用以下命令从源代码编译 openssl:

$./config \
    --prefix=/opt/openssl-1.0.1i \
    –openssldir=/opt/openssl-1.0.1i
$ make
$ sudo make 安装

和 Apache 一起:

./configure --prefix=/etc/apache2 \
     --enable-access_compat=共享 \
     --启用操作=共享 \
     --启用别名=共享 \
     --启用允许方法=共享 \
     –启用-auth_basic =共享\
     --enable-authn_core=共享 \
     --enable-authn_file=共享 \
     --enable-authz_core=共享 \
     --enable-authz_groupfile=共享 \
     --enable-authz_host=共享 \
     --enable-authz_user=共享 \
     --启用自动索引 = 共享 \
     --enable-dir=共享\
     --enable-env=共享 \
     --启用标头=共享 \
     --启用-包含=共享 \
     --enable-log_config=共享\
     --enable-mime=共享 \
     --启用协商=共享 \
     --启用代理=共享 \
     --enable-proxy_http=共享 \
     --启用重写 = 共享 \
     --enable-setenvif=共享 \
     --启用-ssl =共享\
     --enable-unixd=共享 \
     --启用 SSL \
     --with-ssl=/opt/openssl-1.0.1i \
     --启用 SSL-staticlib-deps \
     --enable-mods-static = ssl
制作
(接下来会运行 sudo make install 但出现错误)

我基本上遵循指南在这里除了较新的版本。我的问题是,当我为 apache 运行 make 时,出现链接器错误:

全力支持
make[1]: 进入目录 `/home/developer/downloads/httpd-2.4.10/support'
make[2]: 进入目录 `/home/developer/downloads/httpd-2.4.10/support'
/usr/share/apr-1.0/build/libtool --silent --mode=link x86_64-linux-gnu-gcc -std=gnu99 -pthread -L/opt/openssl-1.0.1i/lib -lssl -lcrypto \
                 -o ab ab.lo /usr/lib/x86_64-linux-gnu/libaprutil-1.la /usr/lib/x86_64-linux-gnu/libapr-1.la -lm
/usr/bin/ld: /opt/openssl-1.0.1i/lib/libcrypto.a(dso_dlfcn.o): 对符号‘dlclose@@GLIBC_2.2.5’的未定义引用

我试过答案在这里,但没有运气。我宁愿只使用 aptitude,但不幸的是我需要的版本尚未推出。如果有人知道如何修复链接器问题(或者我认为是链接器问题),或者知道更好的方法来告诉 apache 使用较新的 openssl,将不胜感激;否则,我的 apache 1.0.1i 就可以正常工作。

答案1

修复了这个问题,但我不确定问题到底是什么。我改变了两件事:

首先,我将其安装到--prefix=/opt/httpd/openssl 旁边的一个孤独目录 ()。我认为这没什么区别,但没有时间确认这一点。

其次,我用 apr 和 apr-util 源代码编译了它(之前我让它使用我从 aptitude 获得的副本——开发版本)。我将 apr 和 apr-util 源代码添加到源代码树中,并--with-included-apr在运行 apache 时使用该选项./configure

将源代码添加到源树的步骤:

$ tar zxvf httpd-2.4.10.tar.gz
$ cd httpd-2.4.10/srclib/
$ tar zxvf ../../apr-1.5.1.tar.gz
$ ln -s apr-1.5.1/ apr
$ tar zxvf ../../apr-util-1.5.3.tar.gz
$ ln -s apr-util-1.5.3/ apr-util

用于配置 apache 的命令(为简洁起见,省略了其他启用的模块):

$ ./configure \
    --prefix=/opt/httpd \
    --with-included-apr \
    --enable-ssl \
    --with-ssl=/opt/openssl-1.0.1i \
    --enable-ssl-staticlib-deps \
    --enable-mods-static=ssl

相关内容