2017-02-17 17 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 Stretch (9).

Я нашел libcurl4-openssl-dev установлен в/USR/включать/x86_64-Linux-гну/локон when ./configure expect it in/включить/скручивание/`

libcurl4-OpenSSL-разработчика на DEBiAN Jessie установить завиток в/USR/include/curl /, когда Stretch install curl в/usr/include/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

выглядеть ближе в файле '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

Ничего не меняется, такая же ошибка. Я не уверен, но я думаю, что что-то изменилось в пакете libcurl4-openssl-dev в debian 8 jessie (https://packages.debian.org/fr/jessie/amd64/libcurl4-openssl-dev/filelist) и debian 9 stretch (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 и скомпилировать PHP с --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, они также потерпят неудачу с отсутствующей ошибкой curl, потому что просто новые пакеты разработки не создают требуемые файлы, в которых PHP их ожидает.

Я называю это временным решением, поскольку будущие обновления в Debian могут исправить это, разместив символическую ссылку или что-то в /usr/include/curl, указывая на вашу архитектуру по умолчанию, или, возможно, обновится скрипт PHP. Причина, по которой вы используете --with-curl=/usr/local, заключается в том, что скрипт конфигурации PHP хочет «то, что вы указали», и добавляет /include/curl.