2017-02-17 9 views
6

पीएचपी 7.1.2 यहाँ है, मैं के रूप में आम तौर पर यह संकलन करने की कोशिश की लेकिन इस बार कॉन्फ़िगर इन त्रुटि के साथ विफल: (पीएचपी 7.1.2 संकलन और libcurl त्रुटि

checking for cURL in default path... not found
configure: error: Please reinstall the libcurl distribution - easy.h should be in /include/curl/

मैं डेबियन खिंचाव पर हूँ 9)।

मैंने पाया libcurl4-openssl-dev स्थापित किया गया है/usr/शामिल स्थापित/x86_64-linux-जीएनयू/कर्ल when कॉन्फ़िगर expect it in/शामिल/कर्ल/`

डेबियन जेसी पर libcurl4-openssl-देव कर्ल में/usr में/शामिल/curl/जब स्ट्रेच/usr/curl/कर्नेल स्थापित करें/x86_64-linux-gnu/curl में कर्ल स्थापित करें।

पिछले PHP संस्करण के साथ संकलित (7.1.1) के साथ, मुझे कोई समस्या नहीं थी, लेकिन इस बार यह असफल रहा।

संकलन करने के लिए:

./buildconf --force && ./configure --prefix=/usr/local/php --with-config-file-path=/etc/php/lib --enable-bcmath --with-bz2 --with-zlib --enable-zip --enable-calendar --enable-exif --enable-ftp --with-gettext --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-xpm-dir --enable-mbstring --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-openssl --enable-intl --enable-soap --with-readline --with-curl --with-mcrypt --with-xsl --enable-sockets 

curl और libcurl4-openssl-dev संकुल

मैं --with-कर्ल =/usr/शामिल/x86_64-linux-जीएनयू/कर्ल के साथ की कोशिश की स्थापित कर रहे हैं/लेकिन यह 'नहीं करता है टी काम नहीं

मुझे नहीं पता कि इसे कैसे हल किया जाए, क्या कोई इसे जानता है?

+0

असफल चेक –

उत्तर

1

आपको libcurl4-gnutls-dev पैकेज स्थापित करना चाहिए।

This package provides the development files (ie. includes, static library, manual pages) that allow one to build software which uses libcurl .

libcurl4-gnutls-dev स्थापित करने के लिए:

sudo apt-get install libcurl4-gnutls-dev 
+0

के बारे में अधिक विशिष्ट विवरण प्राप्त करने में विफलता के बाद 'config.log' फ़ाइल में नज़दीक दिखने के बाद मैंने कोशिश की लेकिन यह कुछ भी नहीं बदला। Libcurl4-gnutls-dev को संस्थापित करना libcurl4-openssl-dev को हटा दें। Php द्वारा अनुरोध की गई फ़ाइलें इंस्टॉल की गई हैं (easy.h) लेकिन अपेक्षित पथ में नहीं। यह 7.1.2 तक, "नया" है, मैं हर नए PHP संस्करण को संकलित करता था और यह हर बार काम करता है। लेकिन इस बार मैं PHP की संकलन नहीं कर सकता क्योंकि पथ से आवश्यकताओं से मेल नहीं खाता है। – krazitchek

+0

@krazitchek इसे 'के साथ आज़माएं।/ config --prefix =/usr' – GAD3R

+1

कुछ भी नहीं, एक ही त्रुटि बदलती है। मुझे यकीन नहीं है, लेकिन मुझे लगता है कि libcurl4-openssl-dev पैकेज में डेबियन 8 जेसी (https://packages.debian.org/fr/jessie/amd64/libcurl4-openssl-dev/filelist) और डेबियन 9 खिंचाव में कुछ बदलाव (https://packages.debian.org/fr/stretch/amd64/libcurl4-openssl-dev/filelist)। हम उन दो यूआरएल पर देख सकते हैं कि पथ एक ही पैकेज के लिए समान नहीं है। जेसी संस्करण मिलान आवश्यकता (/usr/include/curl/easy.h) जबकि खिंचाव संस्करण आवश्यकता से मेल नहीं खाता (/usr/include/x86_64-linux-gnu/curl/easy.h)। – krazitchek

4

एक अस्थायी समाधान /usr/local/include/curl पर एक प्रतीक लिंक बनाने के लिए /usr/include/x86_64-linux-gnu/curl की ओर इशारा करते और --with-curl=/usr/local साथ पीएचपी संकलित करने के लिए है।

उदाहरण: /usr/local/include के भीतर उपयोगकर्ता root के रूप में या sudo ln -s /usr/include/x86_64-linux-gnu/curl curl का उपयोग कर आदेश।

इस समस्या को खोज रहे अन्य लोगों के लिए, x86_64 को अपने आर्किटेक्चर के साथ बदलें।

मैं आपको नहीं बता सकता कि यह एक बग है, या libcurl4-gnutls-dev और libcurl4-openssl-dev पैकेजों के अपडेट के अनपेक्षित परिणाम हैं। आप देखेंगे कि यदि आप PHP के पिछले संस्करणों को संकलित करने का प्रयास करते हैं, तो वे अब गायब कर्ल त्रुटि के साथ भी असफल हो जाएंगे, क्योंकि बस, नए विकास पैकेज आवश्यक फाइलें नहीं बनाते हैं जहां PHP उन्हें अपेक्षा करता है।

मैं इसे एक अस्थायी समाधान कहता हूं क्योंकि डेबियन में भविष्य के अपडेट एक सिम्लिंक या कुछ /usr/include/curl पर आपके डिफ़ॉल्ट आर्किटेक्चर को इंगित करके इसे ठीक कर सकते हैं, या शायद PHP कॉन्फ़िगरेशन स्क्रिप्ट अपडेट हो जाएगी। --with-curl=/usr/local का उपयोग करने का कारण यह है कि PHP कॉन्फ़िगरेशन स्क्रिप्ट "जो आप निर्दिष्ट करते हैं" चाहता है, और /include/curl जोड़ता है।

संबंधित मुद्दे