কীভাবে `কনফিগার: ত্রুটি সমাধান করবেন: ওপেনএসএসএল এর <evp.h> find খুঁজে পাচ্ছেন না?


33

আমি পিএইচপি পুনরায় সংকলনের চেষ্টা করছি, কিন্তু। / কনফিগার এখানে ব্যর্থ হয়:

configure: error: Cannot find OpenSSL's <evp.h>

আমার কাছে LibSSL 1.0.0, LibSSL 0.9.8, LibSSL-Dev, OpenSSL ইনস্টল করা আছে।

--with-openssl=/usr/include/openssl

যখন আমি চেষ্টা করি

--with-openssl

আমাকে বলে:

কনফিগার: ত্রুটি: ওপেনএসএসএল এর লাইব্রেরি খুঁজে পাচ্ছে না

**** সমস্যা কোথায়?

পিএস পিএইচপি 5.2.5, ওএস হ'ল উবুন্টু

উত্তর:


47

একই সমস্যাটি ঘটেছিল Ubuntu 12.04.1 LTSএবং এটি জারি করে সমাধান করা হয়েছিল:

sudo apt-get install libcurl4-openssl-dev pkg-config


হ্যালো :) আমি কীভাবে আমার সমস্যার সমাধান করব তা আমি ভুলে গেছি। :) এটা দেড় বছর আগে ছিল।
ক্যাপিওয়াই

2
এর libcurl4-openssl-devথেকে আলাদা কীভাবে libssl-dev?
গেরম্যান

16

ডেবিয়ান হুইজে পিএইচপি -5.3 তৈরি করতে আপনার এই ত্রুটিটি সমাধান করার জন্য নিম্নলিখিতগুলির প্রয়োজন।

apt-get install libssl-dev libsslcommon2-dev

তারপরে আপনাকে নিম্নলিখিত অন্তর্ভুক্ত করে কনফিগার করতে হবে

./configure --with-libdir=/lib/x86_64-linux-gnu ...

2
1+, আমাকে অনেক সাহায্য করেছে। আমাকেও যুক্ত করতে হয়েছিল --with-php-config /usr/local/src/php-x.x.x/scripts/php_config। আমি এক্সটেনশনগুলির সাথে পিএইচপি সংকলন করার জন্য কীভাবে
ড্যানিয়েল ডাব্লু।

কাজ করে কিন্তু সব পরীক্ষার ক্ষেত্রে ব্যর্থ হয়।
রাফায়েল

"--With-openssl" নির্দেশিকা সহ উবুন্টু 14.04-এ PHP5.2 ম্যানুয়াল সংকলনের জন্য কাজ করে। অনেক ধন্যবাদ.
ডাঃ আমি

12

ধরে নিই যে আপনার কাছে ইতিমধ্যে ওপেনএসএসএল লাইব্রেরি এবং শিরোলেখ ফাইল রয়েছে (আরপিএম সিস্টেমগুলিতে পরবর্তীগুলি এক্সএক্সএক্সএক্সএক্স-ডেভেল প্যাকেজে রয়েছে) ...

সমস্যাটি configureফাইল সিস্টেমের চারপাশে বিতরণ করা নির্ভরতাগুলি কীভাবে সমাধান করে তা থেকে মনে হয় । কোডটি সংকলন করতে, কমলারকে হেডার কোথায় রয়েছে তা জানতে হবে। কোডটি লিঙ্ক করার জন্য, লিঙ্কারে লাইব্রেরিগুলি কোথায় রয়েছে তা জানতে হবে।

[colin@host]$ configure .... --with-openssl-dir=/usr/include/openssl ....
...
checking OpenSSL dir for FTP... /usr/include/openssl
checking for pkg-config... /usr/bin/pkg-config
configure: error: Cannot find OpenSSL's <evp.h>

[colin@host]$ find /usr/include -name evp.h
/usr/include/openssl/evp.h

অন্তর্ভুক্ত ডিরেক্টরিটিতে অন্তর্ভুক্ত ফাইল রয়েছে তবে লাইব্রেরি হওয়ায় pkg-config ব্যর্থ হয়েছে না / usr / অন্তর্ভুক্ত / OpenSSL, তার মধ্যে / usr / lib

ডিরেক্টরি হিসাবে / usr দিয়ে আবার কনফিগার চালানো হচ্ছে:

configure .... --with-openssl-dir=/usr ....
...
checking OpenSSL dir for FTP... /usr
checking for pkg-config... /usr/bin/pkg-config
checking for OpenSSL version... >= 0.9.6
checking for CRYPTO_free in -lcrypto... yes
...

যুক্তি হিসাবে পাস করা পথটি সম্পর্কিত সংস্থানগুলি অনুসন্ধান করার জন্য অনুসন্ধান করা হয়।


এটি আমার পক্ষে কাজ করেছে। এটি একটি ভাল সমাধান।
শন ওয়েলচ

এটি ছিল ডেবিয়ান হুইজি + পিএইচপি 5.3.10 এর সমাধান! ধন্যবাদ!!!!
হোমস

@ হোলস: এটি এখন পিএইচপি-র একটি পুরানো সংস্করণ। বিশেষত যদি আপনি পরিচালিত প্যাকেজগুলির চেয়ে সংকলিত থেকে উত্স ব্যবহার করতে চলেছেন তবে আপনার সাম্প্রতিক প্রকাশটি ব্যবহার করা উচিত।
সিমকিয়ান

এটি আমার নির্মাণের জন্য সমাধান ছিল php-7.1.12উপর Debian Jessie। আপনাকে ধন্যবাদ
ako

10

আর একটি কারণ ./configureব্যর্থ হতে পারে কারণ আপনি pkg-configইনস্টল করেন নি, যেমন পিএইচপি 7 এবং ডেবিয়ান জেসির সাথে আমার ক্ষেত্রে:

sudo apt-get install pkg-config

2
তিন বছর আগে থেকে এটি একটি পৃথক উত্তরে ইতিমধ্যে চিহ্নিত করা হয়েছিল।
ক্যাস্পারড

9

ডেবিয়ান 8.1 (জেসি) -এ পিএইচপি -5.4.45 সংকলন করতে আমাকে করতে হয়েছিল:

apt-get install libssl-dev

এর পরে আমি এটি ব্যবহার করে সংকলন করতে পারি --with-openssl


2

আমি অতিরিক্ত লাইব্রেরি ইনস্টল করে সমস্যাটি সমাধান করেছি

sudo apt-get install -y autoconf g++ make openssl libssl-dev libcurl4-openssl-dev
sudo apt-get install -y libcurl4-openssl-dev pkg-config
sudo apt-get install -y libsasl2-dev


0

আপনাকে evp.h ফাইলটি কোথায় সন্ধান করতে হবে তা নির্ধারণে সহায়তা করতে হবে কারণ ডিফল্টরূপে এটি ডিরেক্টরিগুলির জন্য স্ক্যান করে এবং এটি সন্ধানের জন্য তাদেরকে হার্ডকোডযুক্ত প্রত্যয় যুক্ত করে। যারা সমাধানটি বুঝতে চান তাদের জন্য আমি আমার উইকি পৃষ্ঠায় বিশদ রেখেছি । আমার জন্য যা কাজ করেছে তা এখানে:

root@audio-mon[10.10.10.82] ~/DOWNLOADS/php-5.5.23/ext/mysqlnd # PHP_OPENSSL_DIR="/usr /usr/lib/x86_64-linux-gnu"
root@audio-mon[10.10.10.82] ~/DOWNLOADS/php-5.5.23/ext/mysqlnd # ./configure --with-libdir=""
[...]
checking for DSA_get_default_method in -lssl... yes
checking for X509_free in -lcrypto... yes
checking for pkg-config... /usr/bin/pkg-config
checking for OpenSSL version... >= 0.9.6 #                     <------------------------------------- YES !
[...]
config.status: creating config.h
config.status: config.h is unchanged
root@audio-mon[10.10.10.82] ~/DOWNLOADS/php-5.5.23/ext/mysqlnd # 

ওয়াইএমএমভি (পথ পৃথক পৃথক)। যদি এটি আপনার জন্য উইকি পৃষ্ঠাটি পরীক্ষা করে না কাজ করে তবে এটি কোন পথটি রাখবে তা নির্ধারণ করতে আপনাকে সহায়তা করবে।


0

ওপেনএসএসএল ইনস্টল থাকা সত্ত্বেও ফেডোরা 19 তে আমার একই সমস্যা ছিল।

আমাকে openssl-devel.i686 ইনস্টল করতে হয়েছিল যা এসএসএল সম্পর্কিত সমস্ত প্যাকেজগুলির জন্য জেনেরিক অনুসন্ধান করে আমি পেয়েছি:

sudo yum search ssl
sudo yum install openssl-devel.i686

তারপরে আমি আবার সফলতার সাথে কনফিগার করেছিলাম:

sudo ./configure --with-apxs2=/usr/bin/apxs --with-mysql --enable-mbstring --with-mysqli --with-openssl=/usr/

0

কেবলমাত্র আমার প্রতিক্রিয়া: এই এসএসএল সমস্যাটি থিসি পোস্ট থেকে সমাধান করার পরে, আমি পিএইচপি 5.3 সংকলন সম্পূর্ণরূপে ছেড়ে দিয়েছি কারণ এটি মাঝখানে জেন্ড ডোম এক্সটেনশনের উপর আরও ব্যর্থ হয়েছে, আমি কিছু প্যাচ পেয়েছি এবং ঠিক এই গন্ডগোল ফেলে দেওয়ার সিদ্ধান্ত নিয়েছি । ওবুন্টু 12.04 রয়েছে যা এখনও বোর্ডে 5.3.10 পিএইচপি আছে। পিএইচপি-এফএমপি ফিরে সতর্কতা অবলম্বন করুন তারপরে পরিবেশের ভেরিয়েবলগুলি সাফ করে দেওয়া। সুতরাং উদাহরণস্বরূপ আপনি যখন ডকার থেকে বিশ্বব্যাপী ভেরিয়েবলগুলি পাস করতে পারবেন না তখন অবাক হবেন না।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.