nginx ./configure não consegue encontrar openssl

3

Estou tentando instalar o nginx e não importa o que eu faça, o nginx não consegue encontrar meu caminho openssl. Parece que ele está procurando por arquivos que não existem em nenhum dos diretórios openssl. Abaixo está minha saída de produção. Eu tentei especificar vários caminhos para o nginx procurar por openssl.

[root@server nginx-0.8.54]# make
make -f objs/Makefile
make[1]: Entering directory '/root/nginx-0.8.54'
cd /usr/local/ssl \
        && make clean \
        && ./config --prefix=/usr/local/ssl/.openssl no-shared  no-threads \
        && make \
        && make install LIBDIR=lib
make[2]: Entering directory '/usr/local/ssl'
make[2]: *** No rule to make target 'clean'.  Stop.
make[2]: Leaving directory '/usr/local/ssl'
make[1]: *** [/usr/local/ssl/.openssl/include/openssl/ssl.h] Error 2
make[1]: Leaving directory '/root/nginx-0.8.54'
make: *** [build] Error 2

Alguém tem alguma opinião sobre isso?

    
por Chris 11.03.2011 / 02:47

7 respostas

5

Isso também pode ocorrer quando o seu nginx configure usa caminhos relativos. Ele encontra as bibliotecas de maneira muito mais confiável se forem usados caminhos completos de / .

Não funciona: ./configure --with-openssl=../openssl-source

Funcionamento: ./configure --with-openssl=/home/build/src/openssl-source

    
por 16.06.2013 / 07:18
2
./configure —with-cc-opt="-I/usr/local/opt/openssl/include" --with-ld-opt="-L/usr/local/opt/openssl/lib"
    
por 05.09.2017 / 05:23
1

Executar "yum install openssl-devel" parece muito mais fácil do que trocar para o Ubuntu.

Tive o mesmo problema que o OP. Eu tinha o openssl instalado, mas o nginx poderia encontrá-lo quando compil mas o ponteiro para libssl-devel me ajudou

    
por 16.09.2011 / 23:49
1

Eu não consigo lembrar exatamente qual era o problema aqui, mas estou supondo que um link simbólico para / usr / local / ssl (ou openssl?) para onde o openssl realmente reside resolveria o problema. Eu não tive nenhum problema em instalar o nginx com suporte a SSL no Ubuntu 10.04 com o padrão OpenSSL. Então, eu recomendaria a qualquer pessoa que estivesse lutando com isso para tentar isso.

Além disso, você provavelmente precisa dos pacotes dev corretos instalados. Aqui está o que eu normalmente instalo antes de instalar o nginx ..

2  apt-get update
3  apt-get install gcc
4  apt-get install g++
5  wget http://www.python.org/ftp/python/2.7/Python-2.7.tgz
6  wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.12.tar.gz
7  wget http://zlib.net/zlib-1.2.5.tar.gz
8  ls
9  gzip -d pcre-8.12.tar.gz 
10  gzip -d zlib-1.2.5.tar.gz 
11  gzip -d Python-2.7.tgz 
12  tar -xvf zlib-1.2.5.tar 
13  cd zlib-1.2.5
14  ./configure 
15  make
16  ls
17  Makefile
18  ls
19  ./configure 
20  make
21  sudo apt-get install build-essential
22  make
23  make install
24  cd ..
25  ls
26  tar -xvf pcre-8.12.tar 
27  cd pcre-8.12
28  ./configure --prefix=/usr --enable-unicode-properties
29  make
30  make install
31  cd ..
32  ls
33  tar -xvf Python-2.7.tar 
34  apt-get install openssl
35  cd Python-2.7
36  apt-get install libssl-dev
37  apt-get install libperl-dev
38  ./configure --help
39  ./configure --enable-ipv6
40  make
41  make install
    
por 13.03.2011 / 09:27
0

cabeçalhos openssl são normalmente fornecidos por libssl-dev no Ubuntu. Há também uma opção --with-openssl=DIR ./configure para nginx que permite especificar manualmente o caminho para origens openssl. Qualquer razão pela qual você está construindo a partir do código-fonte, em vez de usar o gerenciador de pacotes?

    
por 11.03.2011 / 03:01
0

Para Zlib

descompacte o arquivo tar zlib e configure-o

Caminho - /opt/app/workload/nginx-test/nginx-1.8.0/zlib/zlib-1.2.8

./configure --prefix=/opt/app/workload/nginx-test/nginx-1.8.0/zlib/zlib-1.2.8
make
make install

Para PCRE

Descompacte o arquivo PCRE e configure-o

Caminho - /opt/app/workload/nginx-test/nginx-1.8.0/pcre/pcre-8.36

./configure --prefix=/opt/app/workload/nginx-test/nginx-1.8.0/pcre/pcre-8.36

make
make install

Apenas descompacte o arquivo sem necessidade de configurá-lo, o Nginx irá usá-lo por si próprio

para openssl

Caminho - /opt/app/workload/nginx-test/nginx-1.8.0/openssl-1.0.1l

Para o Nginx

./configure --prefix=/opt/app/workload/nginx-test/nginx-1.8.0/nginx --with-pcre=/opt/app/workload/nginx-test/nginx-1.8.0/pcre/pcre-8.36 --with-zlib=/opt/app/workload/nginx-test/nginx-1.8.0/zlib/zlib-1.2.8 --with-http_ssl_module --with-openssl=/opt/app/workload/nginx-test/nginx-1.8.0/openssl-1.0.1l
    
por 11.12.2015 / 12:29
0

Se você estiver tentando criar nginx com macOS e openssl estiver instalado via brew , a biblioteca openssl será instalada no caminho, como: /usr/local/opt/openssl . De brew info openssl

This formula is keg-only, which means it was not symlinked into /usr/local,

because Apple has deprecated use of OpenSSL in favor of its own TLS and crypto libraries.

Em caso assim, como disse @Bingnan, você pode deixar o script de configuração saber o include & caminhos de lib de openssl via --with-cc-opt e --with-ld-opt :

./configure —with-cc-opt="-I/usr/local/opt/openssl/include" --with-ld-opt="-L/usr/local/opt/openssl/lib"

    
por 23.10.2017 / 15:29

Tags