2017-02-17 71 views
6

PHP 7.1.2是在這裏,我想因爲通常編譯它,但這次的./configure這些錯誤失敗:PHP 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/

我在Debian拉伸( 9)。

我發現libcurl4-openssl-dev安裝在/ usr/include目錄/ x86_64的-Linux的GNU /捲曲when的./configure expect it in /包括/捲曲/`

在Debian傑西libcurl4-的OpenSSL開發捲曲安裝在/ usr/include/curl /當Stretch在/ usr/include/x86_64-linux-gnu/curl中安裝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 

curllibcurl4-openssl-dev軟件包安裝

我用--with-捲曲=/usr/include目錄/ x86_64的-Linux的GNU /捲曲試圖/但它不」工作。

我不知道該如何解決這個問題,請有人知道嗎?

+0

在無法獲得有關失敗檢查的更多特定詳細信息後,在'config.log'文件中看起來更接近 –

回答

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

我嘗試過,但它沒有任何改變。安裝libcurl4-gnutls-dev刪除libcurl4-openssl-dev。安裝php請求的文件(easy.h),但不在預期的路徑中。這是「新的」,直到7.1.2我用這種方式編譯每一個新的PHP版本,並且它每次都有效。但是這次我不能編譯PHP,因爲路徑不符合需求。 – krazitchek

+0

@krazitchek用'嘗試。/ configure --prefix =/usr' – GAD3R

+1

沒有改變,同樣的錯誤。我不確定,但我想在debian 8 jessie(https://packages.debian.org/fr/jessie/amd64/libcurl4-openssl-dev/filelist)和debian 9 stretch中的libcurl4-openssl-dev軟件包(https://packages.debian.org/fr/stretch/amd64/libcurl4-openssl-dev/filelist)。我們可以在這兩個URL上看到,對於同一個包,路徑是不一樣的。 Jessie版本匹配要求(/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編譯PHP。

示例:來自/usr/local/include的命令以用戶root或使用sudo ln -s /usr/include/x86_64-linux-gnu/curl curl

對於搜索此問題的其他人,請將x86_64替換爲您的架構。

我不能告訴你這是一個錯誤,還是更新libcurl4-gnutls-devlibcurl4-openssl-dev軟件包的意外結果。您會注意到,如果您嘗試編譯以前版本的PHP,現在他們也會因缺少curl錯誤而失敗,因爲簡單地說,新的開發包不會在PHP期望的位置創建所需的文件。

我把它稱爲臨時解決方案,因爲Debian將來的更新可能會通過放置符號鏈接或/usr/include/curl指向默認架構來解決此問題,也可能會更新PHP配置腳本。您使用--with-curl=/usr/local的原因是PHP配置腳本需要「您指定的內容」,並附加/include/curl