Tentando compilar a partir do novo apache de origem com o mais novo openssl

1

Eu preciso instalar o apache 2.4.10 usando o openssl 1.0.1i. Eu compilei o openssl a partir do código fonte com:

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

e o Apache com:

./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)

Estou essencialmente seguindo o guia aqui , exceto com as mais recentes versões ligeiramente mais recentes. Meu problema é que recebo um erro de vinculador quando executo o make para o 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'

Eu tentei a resposta aqui mas sem sorte. Eu preferiria apenas usar o aptitude, mas infelizmente as versões que eu preciso ainda não estão disponíveis. Se alguém souber como consertar o problema do linker (ou o que eu acho que seja um problema de linker), ou se sabe de uma maneira melhor de dizer ao apache para usar um openssl mais recente, seria muito apreciado; Eu tenho o apache 1.0.1i trabalhando de outra forma.

    
por AlexMA 21.08.2014 / 23:39

1 resposta

0

Corrigido, embora eu não saiba exatamente qual era o problema. Eu mudei duas coisas:

Primeiro, instalei em um diretório solitário ( --prefix=/opt/httpd/ ) ao lado de openssl. Eu não acho que isso tenha feito diferença, mas não tenho tempo para confirmar isso.

Em segundo lugar, eu compilei com o código-fonte apr e apr-util (antes de permitir que ele usasse as cópias que obtinha do aptitude - as versões dev). Adicionei o código-fonte apr e apr-util à árvore de código-fonte e usei a opção --with-included-apr quando executei o ./configure do apache.

Etapas para adicionar o código-fonte à árvore de origem:

$ 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

Comando usado para configurar o apache (com outros módulos ativados omitidos por brevidade):

$ ./configure \
    --prefix=/opt/httpd \
    --with-included-apr \
    --enable-ssl \
    --with-ssl=/opt/openssl-1.0.1i \
    --enable-ssl-staticlib-deps \
    --enable-mods-static=ssl
    
por AlexMA 22.08.2014 / 18:20