SSLサポート付きのnginxをコンパイルできません。OpenSSLが見つかりません


19

SSLモジュールを有効にしてソースからnginxをコンパイルしようとしています。このコマンドを実行すると:

./configure --with-http_ssl_module

すべてが正しくインストールされているかどうかを確認するために通常のチェックを行い、次のようにポップアップします:

OpenSSLライブラリの確認...が見つかりません

./configure:エラー:SSLモジュールにはOpenSSLライブラリが必要です。モジュールを有効にしないか、システムにOpenSSLライブラリをインストールするか、-with-openssl =オプションを使用してnginxを使用してソースからOpenSSLライブラリを静的にビルドできます。

OpenSSLがインストールされているという事実を知っていopenssl versionます。OpenSSL 1.0.1 14 Mar 2012

だから私はかなり困惑しています。OpenSSLがデフォルトの場所にインストールされていないのではないかと思ったので、nginxはそれを見つけることができませんが、サーバーにプリインストールされているため、どこにあるのかわかりません。これがどこにあるかを知るにはどうすればよいですか?

サーバーはUbuntu 12.04 LTSを実行しています。

ありがとう。


2
yum(CentOS | redhat | fedora)を使用している場合は、openssl-develをインストールしてからコマンドを実行してください。
maverick3

回答:


29

ほとんどの場合、libssl-devパッケージが欠落しています。

しかし、すべてのトラブルを回避し、nginxにPPAを使用してみませんか?


PPAとは正確には何ですか?私が収集できるものから、インストールするパッケージをアップロードできますapt-getか?常に最新バージョンのソフトウェアを入手するための最善の方法は、Webサイトのソースからコンパイルすることだと思いました。
ジェームズ・リントン

1
PPAは個人用パッケージアーカイブです。あなたが言ったように、彼らはdpkgパッケージを配布することです。ソースからコンパイルすると最新バージョンが取得される場合がありますが、これは必ずしも必要ではありません。UbuntuおよびPPAの情報は、次の場所に
クリストファーペリン

nginx wikiの情報は良いです。最終的には、私がリンクしたPPAにつながります。:)
マイケルハンプトン

よろしくお願いします。今後PPAを使用することを検討します。しかし、この問題の場合、インストールlibssl-devは機能しました。:)
ジェームズリントン

Nginx PPAは、aptを通じて最新の公式Nginxバイナリを提供する方法です。Ubuntuは通常、サポートのために数リリース前のNginxバージョンを提供しますが、Nginx PPAを使用すると、Nginx.orgから最新リリースを入手できます。このアプローチは、ソースからのコンパイルよりもはるかに使いやすく、自動プロビジョニングスクリプトに最適です。現在インストールされているNginxバージョンをシステム上のaptに認識させ、aptベースの更新をはるかに簡単にします。ソースからコンパイルする特別な理由がない限り、PPAアプローチは本番環境で維持するのがはるかに簡単です。
ジョーJ

1

以下を使用して、nginxのopensslを取得しました。

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

他のすべての試みはうまくいかなかったか、不格好でした。

これが別の助けになることを願っています...


--with-openssl=フラグがソースファイルを指すことであることがわかりました。あなたはnginxののがいることを、すでにコンパイル/システムのOpenSSLに対してリンクしたい場合に./configure表示さ見つけることができません。このフォーラムの投稿--with-cc-opt="-I /usr/local/include" --with-ld-opt="-L/usr/local/lib64 -ldl -Wl,-rpath,/usr/local/lib64"(YMMVを)。
vesperto

追加の参照@vesperto
skidadon

0

libsslが適切な場所にインストールされていることを確認したい場合は、と入力してwhich opensslからを入力しldd /path/to/opensslます。


0

OpenSSLが既にインストールされている場合でも(brew install openssl)、configure自体が回避策を提案します。

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


オプション--with-openssl=はクローン化されたopenssl githubリポジトリを指していますか?十分な理解がないと混乱を招く可能性があるため、回答を編集してこれを反映することを検討してください。
ジェイミーリンジー

はい、/ GitHub / openssl / opensslはgithub.com/openssl/openssl.gitの
Pnemonic

0

pcre関連エラーでソースからnginxをコンパイルする際に問題が解決しない場合は、「-with-pcre」属性でコンパイルしてください。また、pcreパスを提供するために、インストール済みパスを提供しないでください。pcreソフトウェアパスを提供します。

  1. でpcreをインストールする

./configure

作る

sudo make install

次に、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

私の場合、

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

ありがとうございました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.