Как заставить PHP перейти на более позднюю версию Curl? - PullRequest
0 голосов
/ 14 июня 2019

В Curl 7.64.0 есть ошибка, из-за которой невозможно сохранить куки с помощью cookiejar от имени домена, которое не содержит точку (.).

Это делает невозможным использование локального сервера с аутентификацией,потому что я получаю к нему доступ, используя свое собственное имя и имя не содержит точек.Например: «SERVERNAME / LOGIN»

При поиске «Как обновить версию Curl на php» я читаю только один ответ:

Вам нужно скачать другую версию php ископируйте php_curl.dll в папку PHP / EXT.

Проблема в том, что PHP 7.3, PHP 7.2 и PHP 7.1 все используют эту версию CURL 7.64.И попытка скачать php_curl.dll из PHP 7.0 делает curl не работает.Я получаю ошибки "функция curl не существует" везде - я перезапустил IIS после копирования, так что это тоже не вариант.

Как мне понизить или обновить эту версию curl и сохранить ту же версию PHP?Стоит ли устанавливать PHP 7.0, который устарел и небезопасен?

Как найти разные версии PHP_Curl и как их обновить?

Редактировать

Ассоциативный ответ cURL

Это значение «features» не имеет установленного бита PSL (1 << 20), что означает, что эта версия curl страдает от ошибки синтаксического анализа cookie, присутствующей в 7.64.0, исправленной в 7.64.1 (commit 299d9660f85)), что заставило curl не принимать куки на доменные имена без каких-либо точек. </p>

Решение: обновить (или понизить) curl.

от daniel.haxx.se

PHP подтвердил ошибку здесь https://bugs.php.net/bug.php?id=78162

Спасибо за сообщение!Я могу подтвердить эту проблему.

Однако обновление до cURL 7.64.1 заблокировано ошибкой # 78007, а обновление до cURL 7.65.0 / 1 - ошибкой # 78100.Понижение версии также невозможно, поскольку исправления CVE были применены к пакетам libcurl-7.64.0-3.

Мы, безусловно, должны следить за этим.

1 Ответ

2 голосов
/ 15 июня 2019

Если вы хотите, чтобы PHP использовал конкретную версию libcurl, лучше всего скомпилировать libcurl и PHP вручную.конкретные шаги по сборке libcurl & php зависят от используемой вами ОС (Windows? Linux? Mac? * BSD?), но, поскольку вы упомянули php_curl.dll, что относится только к Windows, я думаю, вы используете Windows?в этом случае сначала найдите здесь предпочитаемую версию libcurl https://github.com/curl/curl/releases и скомпилируйте ее, как описано здесь https://curl.haxx.se/docs/install.html, и скомпилируйте PHP, как описано здесь https://wiki.php.net/internals/windows/stepbystepbuild_sdk_2, с дополнительными шагами, найденными здесь https://www.php.net/manual/en/curl.installation.php

(например, вы должны добавить параметр --with-curl="C:\path\to\compiled\libcurl" в скрипт configure php)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...