I need to install apache 2.4.10 using openssl 1.0.1i. I compiled openssl from source with:

$ ./config \
    --prefix=/opt/openssl-1.0.1i \
    --openssldir=/opt/openssl-1.0.1i
$ make
$ sudo make install

and Apache with:

./configure --prefix=/etc/apache2 \
     --enable-access_compat=shared \
     --enable-actions=shared \
     --enable-alias=shared \
     --enable-allowmethods=shared \
     --enable-auth_basic=shared \
     --enable-authn_core=shared \
     --enable-authn_file=shared \
     --enable-authz_core=shared \
     --enable-authz_groupfile=shared \
     --enable-authz_host=shared \
     --enable-authz_user=shared \
     --enable-autoindex=shared \
     --enable-dir=shared \
     --enable-env=shared \
     --enable-headers=shared \
     --enable-include=shared \
     --enable-log_config=shared \
     --enable-mime=shared \
     --enable-negotiation=shared \
     --enable-proxy=shared \
     --enable-proxy_http=shared \
     --enable-rewrite=shared \
     --enable-setenvif=shared \
     --enable-ssl=shared \
     --enable-unixd=shared \
     --enable-ssl \
     --with-ssl=/opt/openssl-1.0.1i \
     --enable-ssl-staticlib-deps \
     --enable-mods-static=ssl 
make 
(would run sudo make install next but I get an error)

I'm essentially following the guide here except with newer slightly newer versions. My problem is I get a linker error when I run make for apache:

Making all in support
make[1]: Entering directory `/home/developer/downloads/httpd-2.4.10/support'
make[2]: Entering directory `/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): undefined reference to symbol 'dlclose@@GLIBC_2.2.5'

I tried the answer here, but no luck. I would prefer to just use aptitude, but unfortunately the versions I need aren't available yet. If anyone knows how to fix the linker problem (or what I think is a linker problem), or knows of a better way to tell apache to use a newer openssl, it would be greatly appreciated; I've got apache 1.0.1i working otherwise.

  • why dont use sudo apt-get install openssl apache2 to install them? – user308564 Aug 22 '14 at 13:29
  • "I would prefer to just use aptitude, but unfortunately the versions I need aren't available yet. " – AlexMA Aug 22 '14 at 13:30
up vote 0 down vote accepted

Fixed it, though I'm not sure exactly what the problem was. I changed two things:

First, I installed to a lonely directory (--prefix=/opt/httpd/) next to openssl. I don't think this made a difference, but don't have time to confirm that.

Second, I compiled it with apr and apr-util source code (before I was letting it use copies I got from aptitude--the dev versions). I added apr and apr-util source code to the source tree, and used the --with-included-apr option when I ran apache's ./configure.

Steps to add source code to source tree:

$ 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

Command used to configure apache (with other enabled modules omitted for brevity):

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

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.