এসএসএল সমর্থন সহ এনগিনেক্স সংকলন করতে পারে না, ওপেনএসএসএল পাওয়া যায় নি


19

আমি এসএসএল মডিউল সক্ষম করে উত্স থেকে nginx সংকলন করার চেষ্টা করছি। আমি যখন এই আদেশটি চালাচ্ছি:

./configure --with-http_ssl_module

এটি সবকিছু যথাযথভাবে ইনস্টল করা আছে কি না তা দেখার জন্য এটি তার স্বাভাবিক চেকগুলি করে এবং তারপরে এটি পপ আপ হয়:

ওপেনএসএসএল লাইব্রেরির জন্য অনুসন্ধান করা হচ্ছে ... পাওয়া যায় নি

./ কনফিগার: ত্রুটি: এসএসএল মডিউলগুলির জন্য ওপেনএসএসএল লাইব্রেরি প্রয়োজন। আপনি মডিউলগুলি সক্ষম করতে পারবেন না, বা সিস্টেমে ওপেনএসএসএল লাইব্রেরি ইনস্টল করতে পারবেন না, বা --with-openssl = বিকল্পটি ব্যবহার করে উত্স থেকে এনজিঙ্ক্স সহ স্ট্যাটিকভাবে ওপেনএসএসএল লাইব্রেরি তৈরি করতে পারবেন।

আমি একটি বাস্তবতার জন্য জানি যে ওপেনএসএসএল ইনস্টল করা আছে, কারণ যখন আমি এটি openssl versionপাইOpenSSL 1.0.1 14 Mar 2012

তাই আমি বেশ স্টাম্পড। আমি ভেবেছিলাম সম্ভবত ওপেনএসএসএলটি তার ডিফল্ট লোকেশনে বিচ্ছিন্ন নয়, যার কারণে এনজিনেক্স এটি খুঁজে পাচ্ছে না, তবে সার্ভারের সাথে এটি প্রাক-ইনস্টল হওয়ার পরে এটি কোথায় ছিল তা আমার কোনও ধারণা নেই। আমি কোথায় এটি জানতে পারি যে এটি কোথায়?

সার্ভারটি উবুন্টু 12.04 এলটিএস চলছে।

ধন্যবাদ।


2
Yum (CentOS | redhat | fedora) ব্যবহারকারীদের জন্য ওপেনসেল-ডেভেল ইনস্টল করার চেষ্টা করুন এবং তারপরে কমান্ডটি চালানোর চেষ্টা করুন।
maverick3

উত্তর:


29

সম্ভবত আপনি libssl-devপ্যাকেজটি অনুপস্থিত ।

তবে কেন নিজেকে সমস্ত সমস্যা বাঁচাতে এবং কেবল এনজিনেক্সের জন্য একটি পিপিএ ব্যবহার করবেন না ?


পিপিএ আসলে কি? আমি যা সংগ্রহ করতে পারি সেগুলি থেকে কি ইনস্টল করার জন্য প্যাকেজগুলি আপলোড করা যায় apt-get? আমি সর্বদা সফ্টওয়্যারটির সর্বশেষতম সংস্করণটি পাচ্ছি তা নিশ্চিত করার সর্বোত্তম উপায়টি ওয়েবসাইট থেকে উত্স থেকে এটি সংকলন করা ছিল thought
জেমস লিন্টন

1
পিপিএগুলি হ'ল ব্যক্তিগত প্যাকেজ সংরক্ষণাগার। যেমনটি আপনি বলেছেন, তারা dpkg প্যাকেজ বিতরণ করবে। উত্স থেকে সংকলন আপনাকে নতুন সংস্করণ পেতে পারে তবে এটি সর্বদা প্রয়োজন হয় না। উবুন্টু এবং পিপিএ সম্পর্কিত তথ্যগুলি
ক্রিস্টোফার পেরিন

এনগিনেক্স উইকির তথ্যটি ভাল। এটি শেষ পর্যন্ত আপনাকে যে পিপিএ লিঙ্ক করেছিল তা নিয়ে যাবে। :)
মাইকেল হ্যাম্পটন

ঠিক আছে, ধন্যবাদ, আমি ভবিষ্যতে পিপিএ ব্যবহার করে দেখব। তবে এই সমস্যার জন্য, ইনস্টলিংয়ের libssl-devকাজ হয়েছে। :)
জেমস লিন্টন

এনগিনেক্স পিপিএ হবার উপায় যা এটি অ্যাপের মাধ্যমে সর্বশেষ অফিসিয়াল এনগিনেক্স বাইনারি সরবরাহ করে। উবুন্টু সাধারণত সহায়তার উদ্দেশ্যে কিছু রিলিজ ফিরে আসে একটি Nginx সংস্করণ, তবে Nginx পিপিএ ব্যবহার করে আপনি Nginx.org থেকে সর্বশেষ প্রকাশ পেতে পারেন। উত্স থেকে সংকলন ও স্বয়ংক্রিয় ব্যবস্থাপনার স্ক্রিপ্টগুলির জন্য দুর্দান্ত এই পদ্ধতির ব্যবহার করা অনেক সহজ। এটি আপনার সিস্টেমে আপ্ট-বেসড আপডেটগুলি আরও সহজভাবে ইনস্টল করা বর্তমানে ইনস্টলিত এনগিনেক্স সংস্করণ সম্পর্কে সচেতন রাখে। উত্স থেকে সংকলনের নির্দিষ্ট কারণ না থাকলে পিপিএ পদ্ধতিতে উত্পাদন বজায় রাখা এত সহজ।
জো জে

1

আমি এনজিএনএক্সের জন্য ওপেনসেল পেতে নিম্নলিখিতগুলি ব্যবহার করেছি:

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

অন্য সমস্ত প্রচেষ্টা হয় কাজ করে না, বা clunky ছিল।

আশা করি এটি অন্যকে সহায়তা করে ...


উত্স ফাইলগুলিকে --with-openssl=নির্দেশ করতে ফ্ল্যাগটি বের করতে আমাকে সহায়তা করেছিল । আপনি যদি ইতিমধ্যে সংকলিত / সিস্টেম ওপেনএসএসএল এর সাথে লিঙ্ক করতে চান তবে এনগিনেক্সগুলি এই ফোরাম পোস্টটি দেখতে পাবে না : (ওয়াইএমএমভি)। ./configure--with-cc-opt="-I /usr/local/include" --with-ld-opt="-L/usr/local/lib64 -ldl -Wl,-rpath,/usr/local/lib64"
ভাস্পের্টো

অতিরিক্ত রেফারেন্সের জন্য ধন্যবাদ @ ওয়েস্পের্টো
স্কিডাডন

0

আপনি যদি libssl সঠিক জায়গায় ইনস্টল করা আছে তা পরীক্ষা করতে চান, আপনি টাইপ করতে পারেন which opensslএবং তারপরে ldd /path/to/openssl


0

এমনকি ওপেনএসএসএল ইতিমধ্যে ইনস্টল করা থাকলেও ( brew install openssl), কনফিগার করে নিজেই একটি কাজের প্রস্তাব দেয়, যা আমার পক্ষে কাজ করেছে:

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


বিকল্পটি কি --with-openssl=ক্লোনড ওপেনসেল গিথুব রেপোতে নির্দেশ করছে? আপনি আপনার উত্তর সম্পাদনা বিবেচনা করতে পারেন এটি প্রতিফলিত করার জন্য কারণ এটি যথেষ্ট বোঝাপড়া ছাড়াই লোকদের জন্য বিভ্রান্তিকর হতে পারে।
জেমি লিন্ডসে


0

যদি কেউ এখনও পিসি সম্পর্কিত ত্রুটির সাথে উত্স থেকে এনগিনেক্স সংকলন করতে সমস্যা বোধ করে তবে "--with-pcre" বৈশিষ্ট্যটি সংকলন করুন। এবং pcre পাথ সরবরাহ করার জন্য, ইনস্টলড পাথ সরবরাহ করবেন না। পিসিআর সফ্টওয়্যার পাথ সরবরাহ করুন।

  1. সাথে পিসিআর ইনস্টল করুন

./সজ্জিত করা

করতে

sudo মেক ইনস্টল

তারপরে, 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.