SSL समर्थन के साथ nginx संकलित नहीं किया जा सकता, OpenSSL नहीं मिला


19

मैं स्रोत मॉड्यूल से सक्षम nginx को संकलित करने की कोशिश कर रहा हूं। जब मैं यह कमांड चलाता हूं:

./configure --with-http_ssl_module

यह देखने के लिए अपनी सामान्य जांच करता है कि क्या सब कुछ सही तरीके से स्थापित है, और फिर यह पॉप अप होता है:

ओपनएसएसएल पुस्तकालय के लिए जाँच ... नहीं मिला

./configure: त्रुटि: एसएसएल मॉड्यूल को ओपनएसएसएल लाइब्रेरी की आवश्यकता होती है। आप या तो मॉड्यूल को सक्षम नहीं कर सकते हैं, या सिस्टम में ओपनएसएसएल लाइब्रेरी को स्थापित कर सकते हैं, या ओपनएसएसएल लाइब्रेरी का निर्माण कर सकते हैं - स्रोत से नग्नेक्स के साथ-with -ssll = विकल्प का उपयोग करके।

मैं एक तथ्य के लिए जानता हूं कि ओपनएसएसएल स्थापित है, क्योंकि जब मैं करता openssl versionहूं तो मुझे मिलता हैOpenSSL 1.0.1 14 Mar 2012

तो मैं बहुत स्टम्प्ड हूं। मुझे लगा कि शायद OpenSSL अपने डिफ़ॉल्ट स्थान पर नहीं है, यही वजह है कि nginx इसे ढूंढ नहीं सकता है, लेकिन मुझे नहीं पता कि यह कहाँ है क्योंकि यह सर्वर के साथ पूर्व-इंस्टॉल आया था। मैं यह कैसे पता लगा सकता हूं कि यह कहां है?

सर्वर Ubuntu 12.04 LTS चला रहा है।

धन्यवाद।


2
Yum (CentOS | redhat | fedora) का उपयोग करने वाले लोगों के लिए Opensl-devel स्थापित करने का प्रयास करें और फिर कमांड चलाने का प्रयास करें।
maverick3

जवाबों:


29

सबसे अधिक संभावना है कि आप libssl-devपैकेज को याद कर रहे हैं ।

लेकिन क्यों न खुद को सारी परेशानी से बचाएं और सिर्फ नगीनों के लिए पीपीए का इस्तेमाल करें ?


वास्तव में पीपीए क्या हैं? मैं जिन चीजों को इकट्ठा कर सकता हूं, उनका उपयोग करके स्थापित किए जाने वाले पैकेज अपलोड कर सकते हैं apt-get? मुझे लगा कि यह सुनिश्चित करने का सबसे अच्छा तरीका है कि मुझे हमेशा सॉफ़्टवेयर का नवीनतम संस्करण मिल रहा था, इसे वेबसाइट से स्रोत से संकलित करना था।
जेम्स लिंटन

1
पीपीए व्यक्तिगत पैकेज अभिलेखागार हैं। जैसा कि आपने कहा, वे dpkg पैकेज वितरित करने के लिए हैं। स्रोत से संकलन आपको सबसे नया संस्करण मिल सकता है लेकिन यह हमेशा आवश्यक नहीं है। उबंटू और पीपीए के लिए जानकारी यहां पाई जा सकती है: wiki.nginx.org/Install#Official_Debian.2FUbuntu_packages
क्रिस्टोफर पेरिन

नेगनेक्स विकि पर जानकारी अच्छी है। यह अंततः आपको पीपीए तक ले जाएगा जो मैंने लिंक किया था। :)
माइकल हैम्पटन

ठीक है धन्यवाद, मैं भविष्य में पीपीए का उपयोग करने पर ध्यान दूंगा। लेकिन इस समस्या के लिए, स्थापित करने का libssl-devकाम किया। :)
जेम्स लिंटन

Nginx पीपीए जाने का एक तरीका है क्योंकि यह apt के माध्यम से नवीनतम आधिकारिक Nginx बाइनरी प्रदान करता है। उबंटू आमतौर पर कुछ प्रयोजनों के लिए वापस एक नाज़िनक्स संस्करण प्रदान करता है, लेकिन नगनेक्स पीपीए का उपयोग करके, आप नवीनतम रिलीज़ को नग्नेक्स.ओआरजी से प्राप्त कर सकते हैं। स्वचालित प्रावधान स्क्रिप्ट के लिए स्रोत और महान से संकलन पर इस दृष्टिकोण का उपयोग करना बहुत आसान है। यह आपके सिस्टम के बारे में जानता है जो वर्तमान में स्थापित किए गए Nginx संस्करण के बारे में अवगत-आधारित अपडेट को बहुत आसान बनाता है। जब तक स्रोत से संकलित करने का कोई विशिष्ट कारण नहीं है, पीपीए दृष्टिकोण उत्पादन में बनाए रखने के लिए बहुत आसान है।
जो जे

1

मैंने निम्नलिखित का उपयोग नग्नेक्स के लिए ओपनएसएल प्राप्त करने के लिए किया:

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

अन्य सभी प्रयास या तो काम नहीं करते थे, या बंद करने के लिए थे।

आशा है कि यह एक और मदद करता है ...


स्रोत फ़ाइलों --with-openssl=को इंगित करने के लिए ध्वज का पता लगाने में मेरी मदद की । तो आप पहले से संकलित / प्रणाली OpenSSL के खिलाफ कड़ी nginx का है कि चाहते हैं देखना नहीं मिल सकता है इस मंच पोस्ट : (YMMV)। ./configure--with-cc-opt="-I /usr/local/include" --with-ld-opt="-L/usr/local/lib64 -ldl -Wl,-rpath,/usr/local/lib64"
vesperto

अतिरिक्त संदर्भ @vesperto के लिए धन्यवाद
स्किडडॉन

0

मामले में आप आप टाइप कर सकते हैं, कि libssl सही जगह में स्थापित किया गया है जाँच करना चाहते हैं which opensslऔर उसके बाद ldd /path/to/openssl


0

यहां तक ​​कि जब OpenSSL पहले से ही स्थापित है ( brew install openssl), कॉन्फ़िगर स्वयं एक समाधान का सुझाव देता है, जो मेरे लिए काम करता है:

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


क्या विकल्प --with-openssl=एक क्लोन किए गए ओपनसेल जीथब रेपो पर इंगित करता है? आप अपने उत्तर को संपादित करने पर विचार कर सकते हैं क्योंकि यह पर्याप्त समझ के बिना लोगों के लिए भ्रमित करने वाला हो सकता है।
जेमी लिंडसे

हाँ, / GitHub /
खुलता है

0

अगर किसी को अभी भी pcre संबंधित त्रुटि के साथ स्रोत से संकलन संकलन का सामना करना पड़ रहा है, तो "--with-pcre" विशेषता के साथ संकलन करें। और pcre पथ प्रदान करने के लिए, स्थापित पथ प्रदान न करें। पीसीआर सॉफ्टवेयर पथ प्रदान करें।

  1. के साथ pcre स्थापित करें

कॉन्फ़िगर

बनाना

सुडोल बनाते हैं

फिर, 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

धन्यवाद।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.