我需要使用 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