Impossibile compilare nginx con supporto SSL, OpenSSL non trovato


19

Sto cercando di compilare nginx dall'origine con il modulo SSL abilitato. Quando eseguo questo comando:

./configure --with-http_ssl_module

fa i suoi soliti controlli per vedere se tutto è installato correttamente, e quindi questo si apre:

verifica della libreria OpenSSL ... non trovata

./configure: errore: i moduli SSL richiedono la libreria OpenSSL. Non è possibile abilitare i moduli, né installare la libreria OpenSSL nel sistema, né compilare staticamente la libreria OpenSSL dall'origine con nginx usando l'opzione --with-openssl =.

So per certo che OpenSSL è installato, perché quando lo faccio openssl versionottengoOpenSSL 1.0.1 14 Mar 2012

Quindi sono piuttosto perplesso. Ho pensato che forse OpenSSL non è installato nella sua posizione predefinita, motivo per cui nginx non riesce a trovarlo, ma non ho idea di dove sia preinstallato sul server. Come posso sapere dove si trova?

Il server esegue Ubuntu 12.04 LTS.

Grazie.


2
Per le persone che usano yum (CentOS | redhat | fedora) prova a installare openssl-devel e quindi prova a eseguire il comando.
Maverick3,

Risposte:


29

Molto probabilmente ti manca il libssl-devpacchetto.

Ma perché non salvarti tutti i problemi e usare semplicemente un PPA per nginx ?


Cosa sono esattamente i PPA? Da quello che posso raccogliere le persone possono caricare i pacchetti da installare usando apt-get? Ho pensato che il modo migliore per assicurarmi di ottenere sempre l'ultima versione del software fosse compilarlo dalla fonte dal sito web.
James Linton,

1
I PPA sono archivi di pacchetti personali. Come hai detto, devono distribuire i pacchetti dpkg. La compilazione dal sorgente potrebbe farti ottenere la versione più recente, ma questo non è sempre necessario. Informazioni per Ubuntu e PPA sono disponibili qui: wiki.nginx.org/Install#Official_Debian.2FUbuntu_packages
Christopher Perrin,

Le informazioni sul wiki di nginx sono buone. Alla fine ti porterà al PPA che ho collegato. :)
Michael Hampton

Bene grazie, esaminerò l'utilizzo dei PPA in futuro. Ma per questo problema, l'installazione ha libssl-devfunzionato. :)
James Linton l'

Nginx PPA è la strada da percorrere in quanto fornisce l'ultimo binario ufficiale di Nginx tramite apt. Ubuntu in genere fornisce una versione di Nginx alcune versioni a scopo di supporto, ma utilizzando Nginx PPA, è possibile ottenere l'ultima versione da Nginx.org. Molto più facile da usare questo approccio rispetto alla compilazione dalla fonte e ottimo per gli script di provisioning automatizzato. Mantiene il tuo apt sul tuo sistema consapevole della versione di Nginx attualmente installata rendendo gli aggiornamenti basati su apt molto più facili. A meno che non vi sia un motivo specifico per la compilazione dalla fonte, l'approccio PPA è molto più facile da mantenere in produzione.
Joe J,

1

Ho usato quanto segue per ottenere openssl per nginx:

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

Tutti gli altri tentativi non hanno funzionato o sono stati ingombranti.

Spero che questo aiuti un altro ...


Mi ha aiutato a capire che la --with-openssl=bandiera è di puntare ai file di origine . Se vuoi collegarti a un OpenSSL già compilato / di sistema che nginx ./configurenon riesce a trovare, vedi questo post sul forum : --with-cc-opt="-I /usr/local/include" --with-ld-opt="-L/usr/local/lib64 -ldl -Wl,-rpath,/usr/local/lib64"(YMMV).
venerdì

Grazie per il riferimento aggiuntivo @vesperto
skidadon

0

Nel caso in cui si desideri verificare che libssl sia installato nel posto giusto, è possibile digitare which openssle quindi ldd /path/to/openssl.


0

Anche quando OpenSSL è già installato ( brew install openssl), configure stesso suggerisce una soluzione alternativa, che ha funzionato per me:

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


L'opzione --with-openssl=punta a un repository github openssl clonato? Potresti prendere in considerazione la modifica della tua risposta per riflettere ciò in quanto potrebbe essere fonte di confusione per le persone senza una comprensione sufficiente.
Jamie Lindsey,

sì, / GitHub / openssl / openssl è un repository clonato di github.com/openssl/openssl.git
Pnemonic

0

Se qualcuno sta ancora affrontando un problema durante la compilazione di nginx dall'origine con l'errore relativo a pcre, compila con l'attributo "--with-pcre". E per fornire il percorso PCRE, non fornire il percorso installato. Fornire percorso software pcre.

  1. Installa pcre con

./configure

rendere

sudo make install

Quindi, fornire il percorso del percorso sorgente 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

Nel mio caso,

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

Grazie.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.