Próbuję skompilować nginx ze źródła z włączonym modułem SSL. Po uruchomieniu tego polecenia:
./configure --with-http_ssl_module
wykonuje zwykłe kontrole, aby sprawdzić, czy wszystko jest poprawnie zainstalowane, a następnie pojawia się:
sprawdzanie biblioteki OpenSSL ... nie znaleziono
./configure: error: Moduły SSL wymagają biblioteki OpenSSL. Możesz albo nie włączyć modułów, albo zainstalować bibliotekę OpenSSL w systemie, lub zbudować bibliotekę OpenSSL statycznie ze źródła za pomocą nginx, używając opcji --with-openssl =.
Wiem na pewno, że OpenSSL jest zainstalowany, bo kiedy to zrobię openssl version
, dostanęOpenSSL 1.0.1 14 Mar 2012
Więc jestem dość zakłopotany. Myślałem, że może OpenSSL nie jest zainstalowany w domyślnej lokalizacji, dlatego nginx nie może go znaleźć, ale nie mam pojęcia, gdzie to jest, ponieważ jest fabrycznie zainstalowane na serwerze. Jak mogę się dowiedzieć, gdzie to jest?
Na serwerze działa Ubuntu 12.04 LTS.
Dzięki.
Odpowiedzi:
Najprawdopodobniej brakuje Ci
libssl-dev
paczki.Ale dlaczego nie zaoszczędzić sobie wszystkich kłopotów i po prostu użyć PPA dla nginx ?
źródło
apt-get
? Pomyślałem, że najlepszym sposobem, aby upewnić się, że zawsze otrzymuję najnowszą wersję oprogramowania, jest skompilowanie jej ze źródła ze strony internetowej.libssl-dev
działała. :)Użyłem następujących poleceń, aby uzyskać openssl dla nginx:
https://ethitter.com/2016/06/nginx-openssl-1-0-2-http-2-alpn/
Wszystkie inne próby albo nie zadziałały, albo były niezgrabne.
Mam nadzieję, że to pomoże kolejnemu ...
źródło
--with-openssl=
flaga ma wskazywać pliki źródłowe . Jeśli chcesz./configure
utworzyć link do już skompilowanego / systemowego OpenSSL, którego nginx nie może znaleźć, zobacz ten post na forum :--with-cc-opt="-I /usr/local/include" --with-ld-opt="-L/usr/local/lib64 -ldl -Wl,-rpath,/usr/local/lib64"
(YMMV).Jeśli chcesz sprawdzić, czy libssl jest zainstalowany we właściwym miejscu, możesz wpisać,
which openssl
a następnieldd /path/to/openssl
.źródło
Nawet gdy OpenSSL jest już zainstalowany (
brew install openssl
), konfiguracja sama sugeruje obejście, które działało dla mnie:./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master
--with-openssl=~/GitHub/openssl/openssl
źródło
--with-openssl=
wskazująca na sklonowane repozytorium openssl github? Możesz rozważyć edytowanie odpowiedzi, aby to odzwierciedlić, ponieważ może to być mylące dla osób bez wystarczającego zrozumienia.Jeśli ktoś nadal napotyka problem z kompilacją nginx ze źródła z błędem związanym z plikiem pcre, skompiluj z atrybutem „--with-pcre”. Aby podać ścieżkę pcre, nie podawaj zainstalowanej ścieżki. Podaj ścieżkę oprogramowania pcre.
Następnie podaj ścieżkę do ścieżki źródłowej pcre.
W moim przypadku,
Dziękuję Ci.
źródło