SSL desteği ile nginx derlenemiyor, OpenSSL bulunamadı


19

SSL modülü etkinken kaynaktan nginx derlemeye çalışıyorum. Bu komutu çalıştırdığımda:

./configure --with-http_ssl_module

her şeyin doğru bir şekilde kurulup kurulmadığını görmek için olağan kontrollerini yapar ve sonra bu açılır:

OpenSSL kütüphanesi kontrol ediliyor ... bulunamadı

./configure: hata: SSL modülleri için OpenSSL kitaplığı gerekir. Modülleri etkinleştiremez veya OpenSSL kitaplığını sisteme kuramaz veya OpenSSL kitaplığını nginx ile statik olarak --with-openssl = seçeneğini kullanarak statik olarak oluşturabilirsiniz.

OpenSSL'nin kurulu olduğu gerçeğini biliyorum, çünkü openssl versionyaptığımdaOpenSSL 1.0.1 14 Mar 2012

Bu yüzden oldukça güldüm. Belki OpenSSL'nin varsayılan konumunda isntalled olmadığını düşündüm, bu yüzden nginx onu bulamıyor, ancak sunucuya önceden yüklenmiş olarak geldiği konusunda hiçbir fikrim yok. Bunun nerede olduğunu nasıl öğrenebilirim?

Sunucu Ubuntu 12.04 LTS çalıştırıyor.

Teşekkürler.


2
Yum (CentOS | redhat | fedora) kullanan kişiler için openssl-devel kurmayı deneyin ve ardından komutu çalıştırmayı deneyin.
Maverick3

Yanıtlar:


29

Büyük olasılıkla libssl-devpaketi kaçırıyorsunuz .

Ama neden kendinize tüm sıkıntıyı kurtarmıyorsunuz ve sadece nginx için bir PPA kullanmıyorsunuz ?


PPA'lar tam olarak nedir? İnsanları toplayabileceğim kişilerden kurulacak paketleri yükleyebilir apt-getmiyim? Yazılımın her zaman en son sürümünü aldığımdan emin olmanın en iyi yolunun web sitesinden kaynaktan derlemek olduğunu düşündüm.
James Linton

1
PPA'lar Kişisel Paket Arşivleridir. Dediğiniz gibi, onlar dpkg paketleri dağıtacak. Kaynaktan derleme size en yeni sürümü sağlayabilir, ancak bu her zaman gerekli değildir. Ubuntu ve PPA ile ilgili bilgileri burada bulabilirsiniz: wiki.nginx.org/Install#Official_Debian.2FUbuntu_packages
Christopher Perrin

Nginx wiki'deki bilgiler iyidir. Sonunda sizi bağladığım PPA'ya yönlendirecektir. :)
Michael Hampton

Tamam, gelecekte PPA'ları kullanmaya bakacağım. Ancak bu sorun için kurulum libssl-devişe yaradı. :)
James Linton

Nginx PPA, en son resmi Nginx ikili dosyasını uygun şekilde sağladığı için gitmenin yoludur. Ubuntu tipik olarak birkaç Nginx sürümünü destek amacıyla geri verir, ancak Nginx PPA'yı kullanarak Nginx.org'dan en son sürümü alabilirsiniz. Kaynaktan derleme üzerinde bu yaklaşımı kullanmak çok daha kolay ve otomatik sağlama komut dosyaları için harika. Apt tabanlı güncellemeleri çok daha kolay hale getirmek için sisteminizde apt mevcut yüklü Nginx sürümü farkında tutar. Kaynaktan derlemek için özel bir neden olmadığı sürece, PPA yaklaşımının üretimde sürdürülmesi çok daha kolaydır.
Joe J

1

Ben nginx için openssl almak için aşağıdakini kullandım:

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

Diğer tüm girişimler ya işe yaramamış ya da tıknazdı.

Umarım bu başka bir yardımcı olur ...


--with-openssl=Bayrağın kaynak dosyalara işaret etmek olduğunu anlamama yardımcı oldu . Zaten derlenmiş / sistem OpenSSL'ye bağlantı kurmak istiyorsanız, nginx'lerin ./configurebulamadığı şu forum gönderisine bakın : --with-cc-opt="-I /usr/local/include" --with-ld-opt="-L/usr/local/lib64 -ldl -Wl,-rpath,/usr/local/lib64"(YMMV).
vesperto

Ek referans için teşekkürler @vesperto
skidadon

0

Libssl dosyasının doğru yere kurulduğunu kontrol etmek istiyorsanız, yazıp which opensslardından yazabilirsiniz ldd /path/to/openssl.


0

OpenSSL zaten kurulu ( brew install openssl) olsa bile, config kendisi benim için çalışan bir geçici çözüm önerir:

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


Seçenek --with-openssl=klonlanmış bir openssl github deposunu gösteriyor mu? Yanıtınızı, bunu yeterince yansıtmadan insanlar için kafa karıştırıcı olabileceğinden yansıtmak üzere düzenlemeyi düşünebilirsiniz.
Jamie Lindsey

evet, / GitHub / openssl / openssl, github.com/openssl/openssl.git
Pnemonic

0

Hala pcre ile ilgili hata ile kaynaktan nginx derleme sorunu karşılaşan varsa, "--with-pcre" özniteliği ile derleyin. Ve pcre yolu sağlamak için, kurulu yolu vermeyin. PCRE yazılım yolu sağlayın.

  1. Pcre ile yükle

./yapılandır

Yapmak

sudo make install

Sonra pcre kaynak yolunun yolunu belirtin.

./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

Benim durumumda,

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

Teşekkür ederim.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.