Ich versuche, Nginx aus dem Quellcode mit aktiviertem SSL-Modul zu kompilieren. Wenn ich diesen Befehl ausführe:
./configure --with-http_ssl_module
Es prüft wie gewohnt, ob alles korrekt installiert ist. Dann wird Folgendes angezeigt:
Suche nach OpenSSL-Bibliothek ... nicht gefunden
./configure: error: SSL-Module erfordern die OpenSSL-Bibliothek. Sie können entweder die Module nicht aktivieren oder die OpenSSL-Bibliothek nicht im System installieren oder die OpenSSL-Bibliothek statisch aus der Quelle mit nginx erstellen, indem Sie die Option --with-openssl = verwenden.
Ich weiß, dass OpenSSL installiert ist, denn wenn ich es tue, openssl version
bekomme ichOpenSSL 1.0.1 14 Mar 2012
Also bin ich ziemlich ratlos. Ich dachte, OpenSSL ist möglicherweise nicht an seinem Standardspeicherort installiert, weshalb Nginx es nicht finden kann, aber ich habe keine Ahnung, wo dies liegt, da es mit dem Server vorinstalliert wurde. Wie kann ich herausfinden, wo das ist?
Auf dem Server läuft Ubuntu 12.04 LTS.
Vielen Dank.
Antworten:
Höchstwahrscheinlich fehlt Ihnen das
libssl-dev
Paket.Aber warum sparen Sie sich nicht den ganzen Ärger und verwenden Sie einfach ein PPA für Nginx ?
quelle
apt-get
? Ich dachte, der beste Weg, um sicherzustellen, dass ich immer die neueste Version der Software bekomme, besteht darin, sie aus dem Quellcode der Website zu kompilieren.libssl-dev
funktioniert. :)Ich habe folgendes benutzt, um openssl für nginx zu bekommen:
https://ethitter.com/2016/06/nginx-openssl-1-0-2-http-2-alpn/
Alle anderen Versuche klappten entweder nicht oder waren zu klobig.
Hoffe das hilft einem anderen ...
quelle
--with-openssl=
Flag auf die Quelldateien verweist. Wenn Sie eine Verknüpfung zu einer bereits kompilierten / System-OpenSSL herstellen möchten, die nginx./configure
nicht finden kann, lesen Sie diesen Forumsbeitrag :--with-cc-opt="-I /usr/local/include" --with-ld-opt="-L/usr/local/lib64 -ldl -Wl,-rpath,/usr/local/lib64"
(YMMV).Wenn Sie überprüfen möchten, ob libssl am richtigen Ort installiert ist, können Sie
which openssl
und dann eingebenldd /path/to/openssl
.quelle
Auch wenn OpenSSL bereits installiert ist (
brew install openssl
), schlägt configure selbst eine Problemumgehung vor, die bei mir funktioniert hat:./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master
--with-openssl=~/GitHub/openssl/openssl
quelle
--with-openssl=
Zeigt die Option auf ein geklontes openssl-Github-Repo? Sie könnten erwägen, Ihre Antwort zu bearbeiten, um dies widerzuspiegeln, da dies für Menschen ohne ausreichendes Verständnis verwirrend sein kann.Wenn weiterhin Probleme beim Kompilieren von Nginx aus dem Quellcode mit dem pcre-bezogenen Fehler auftreten, kompilieren Sie mit dem Attribut "--with-pcre". Geben Sie für die Angabe des pcre-Pfads nicht den installierten Pfad an. Geben Sie den pcre-Softwarepfad an.
Geben Sie dann den Pfad des pcre-Quellpfads an.
In meinem Fall,
Vielen Dank.
quelle