Não é possível compilar o nginx com suporte a SSL, OpenSSL não encontrado

19

Estou tentando compilar nginx da fonte com o módulo SSL ativado. Quando executo este comando:

./configure --with-http_ssl_module

ele faz suas verificações habituais para ver se tudo está instalado corretamente e, em seguida, é exibido:

verificando a biblioteca OpenSSL ... não encontrada

./configure: error: os módulos SSL requerem a biblioteca OpenSSL. Você pode não ativar os módulos, instalar a biblioteca OpenSSL no sistema ou criar a biblioteca OpenSSL estaticamente a partir da fonte com nginx, usando a opção --with-openssl =.

Eu sei que o OpenSSL está instalado, porque quando openssl versioneu receboOpenSSL 1.0.1 14 Mar 2012

Então, eu estou bem perplexo. Eu pensei que talvez o OpenSSL não esteja instalado em seu local padrão, e é por isso que o nginx não consegue encontrá-lo, mas não tenho idéia de onde está, pois ele veio pré-instalado com o servidor. Como posso descobrir onde é isso?

O servidor está executando o Ubuntu 12.04 LTS.

Obrigado.

James Linton
fonte
2
Para quem usa o yum (CentOS | redhat | fedora), tente instalar o openssl-devel e, em seguida, tente executar o comando.
maverick3

Respostas:

29

Provavelmente você está perdendo o libssl-devpacote.

Mas por que não salvar todos os problemas e usar apenas um PPA para nginx ?

Michael Hampton
fonte
O que exatamente são os CAE's? Pelo que posso reunir as pessoas podem fazer upload de pacotes para serem instalados usando apt-get? Eu pensei que a melhor maneira de garantir que eu estava sempre recebendo a versão mais recente do software era compilá-lo da fonte do site.
James Linton
1
Os PPAs são arquivos de pacotes pessoais. Como você disse, eles devem distribuir pacotes dpkg. Compilar a partir da fonte pode obter a versão mais recente, mas isso nem sempre é necessário. Informações para Ubuntu e do PPA pode ser encontrada aqui: wiki.nginx.org/Install#Official_Debian.2FUbuntu_packages
Christopher Perrin
As informações no wiki do nginx são boas. Eventualmente, levará você ao PPA que eu vinculei. :)
Michael Hampton
Tudo bem, obrigado, vou analisar o uso de PPAs no futuro. Mas, para este problema, a instalação libssl-devfuncionou. :)
James Linton
O Nginx PPA é o caminho a seguir, pois fornece o último binário oficial do Nginx através do apt. O Ubuntu normalmente fornece uma versão do Nginx com algumas versões anteriores para fins de suporte, mas usando o Nginx PPA, você pode obter a versão mais recente do Nginx.org. Muito mais fácil de usar essa abordagem do que a compilação a partir da fonte e excelente para scripts de provisionamento automatizados. Ele mantém o seu apt no seu sistema ciente da versão Nginx atualmente instalada, facilitando muito as atualizações baseadas no apt. A menos que haja um motivo específico para compilar a partir da fonte, a abordagem PPA é muito mais fácil de manter na produção.
21815 Joe J as
1

Usei o seguinte para obter o openssl para o nginx:

https://ethitter.com/2016/06/nginx-openssl-1-0-2-http-2-alpn/

Todas as outras tentativas não funcionaram ou foram desajeitadas.

Espero que isso ajude outro ...

skidadon
fonte
Ajudou-me a descobrir a --with-openssl=bandeira é apontar para os arquivos de origem . Se você deseja vincular um OpenSSL já compilado / de sistema que o nginx ./configurenão consegue encontrar, consulte esta postagem no fórum : --with-cc-opt="-I /usr/local/include" --with-ld-opt="-L/usr/local/lib64 -ldl -Wl,-rpath,/usr/local/lib64"(YMMV).
vesperto 26/10
Obrigado pela referência adicional @vesperto
skidadon 1/11
0

Caso você queira verificar se o libssl está instalado no lugar certo, digite which openssle depois ldd /path/to/openssl.


fonte
0

Mesmo quando o OpenSSL já está instalado ( brew install openssl), o próprio configure sugere uma solução alternativa, que funcionou para mim:

./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master--with-openssl=~/GitHub/openssl/openssl

Pnemônico
fonte
A opção está --with-openssl=apontando para um repositório clonado do openssl github? Você pode editar sua resposta para refletir isso, pois pode ser confuso para pessoas sem entendimento suficiente.
Jamie Lindsey
sim, / GitHub / openssl / openssl é um repositório clonado de github.com/openssl/openssl.git
Pnemonic
0

Se alguém ainda estiver enfrentando um problema ao compilar o nginx da fonte com o erro relacionado ao pcre, compile com o atributo "--with-pcre". E para fornecer o caminho do pcre, não forneça o caminho instalado. Forneça o caminho do software pcre.

  1. Instale o pcre com

./configure

faço

sudo make install

Em seguida, forneça o caminho do caminho de origem pcre.

./configure --prefix=/path/to/nginxToBeInstalled/mayBeInOpt/nginx-1.16.0/ --with-openssl=/path/to/installed/openssl-1.1.1b/ --with-pcre=/path/to/your/downloaded/extracted/pcre-8.42

No meu caso,

./configure --prefix=/opt/nginx-1.16.0/ --with-openssl=/opt/openssl-1.1.1b/ --with-pcre=/media/username/personal/Software/pcre-8.42

Obrigado.

aprendiz
fonte