Curl php error: Как отловить ошибки cURL в PHP
Содержание
libcurl — коды ошибок
curl / libcurl / API / коды ошибок
Название
libcurl-errors — коды ошибок в libcurl . Также включены причины их возникновения и возможные способы решения проблемы.
Curlcode
Почти все «простые» функции интерфейса возвращают код ошибки CURLcode. Несмотря ни на что, использование опции curl_easy_setopt CURLOPT_ERRORBUFFER — хорошая идея, поскольку она даст вам удобочитаемую строку ошибки, которая может предложить более подробную информацию о причине ошибки, чем просто код ошибки. Можно вызвать curl_easy_strerror, чтобы получить строку ошибки из заданного номера CURLcode.
CURLcode является одним из следующих:
CURLE_OK (0)
Все в порядке. Действуйте как обычно.
CURLE_UNSUPPORTED_PROTOCOL (1)
URL-адрес, который вы передали libcurl, использовал протокол, который не поддерживает этот libcurl. Поддержка может быть параметром времени компиляции, который вы не использовали, это может быть строка протокола с ошибкой или просто протокол, для которого libcurl не имеет кода.
CURLE_FAILED_INIT (2)
Ошибка раннего кода инициализации. Скорее всего, это внутренняя ошибка или проблема, либо проблема с ресурсами, когда что-то фундаментальное не может быть выполнено во время инициализации.
CURLE_URL_MALFORMAT (3)
URL-адрес имеет неправильный формат.
CURLE_NOT_BUILT_IN (4)
Запрошенная функция, протокол или параметр не были встроены в этот libcurl из-за решения, принятого во время сборки. Это означает, что функция или параметр не были включены или явно отключены при сборке libcurl, и для того, чтобы заставить его работать, вам нужно получить перестроенный libcurl.
CURLE_COULDNT_RESOLVE_PROXY (5)
Не удалось разрешить прокси. Данный прокси-хост не может быть разрешен.
CURLE_COULDNT_RESOLVE_HOST (6)
Не удалось разрешить хост. Данный удаленный хост не был разрешен.
CURLE_COULDNT_CONNECT (7)
Не удалось подключиться() к хосту или прокси.
CURLE_WEIRD_SERVER_REPLY (8)
Сервер отправил данные, которые libcurl не удалось проанализировать. Этот код ошибки был известен как CURLE_FTP_WEIRD_SERVER_REPLY до версии 7.51.0.
CURLE_REMOTE_ACCESS_DENIED (9)
Нам было отказано в доступе к ресурсу, указанному в URL. Для FTP это происходит при попытке перейти в удаленный каталог.
CURLE_FTP_ACCEPT_FAILED (10)
При ожидании обратного подключения сервера, когда используется активный сеанс FTP, код ошибки был отправлен по управляющему соединению или аналогичному.
CURLE_FTP_WEIRD_PASS_REPLY (11)
После отправки пароля FTP на сервер libcurl ожидает надлежащего ответа. Этот код ошибки указывает на то, что был возвращен неожиданный код.
CURLE_FTP_ACCEPT_TIMEOUT (12)
Во время активного сеанса FTP во время ожидания подключения сервера истекло время ожидания CURLOPT_ACCEPTTIMEOUT_MS (или внутреннее значение по умолчанию).
CURLE_FTP_WEIRD_PASV_REPLY (13)
libcurl не удалось получить разумный результат от сервера в ответ на команду PASV или EPSV. Сервер глючит.
CURLE_FTP_WEIRD_227_FORMAT (14)
FTP-серверы возвращают 227-строчный ответ на команду PASV. Если libcurl не удается разобрать эту строку, этот код возврата передается обратно.
CURLE_FTP_CANT_GET_HOST (15)
Внутренняя ошибка при поиске хоста, используемого для нового подключения.
CURLE_HTTP2 (16)
Обнаружена проблема на уровне кадрирования HTTP2. Это несколько общее и может быть одной из нескольких проблем, подробности см. в буфере ошибок.
CURLE_FTP_COULDNT_SET_TYPE (17)
Получена ошибка при попытке установить режим передачи в двоичный или ASCII.
CURLE_PARTIAL_FILE (18)
Передача файла оказалась короче или больше, чем ожидалось. Это происходит, когда сервер сначала сообщает ожидаемый размер передачи, а затем доставляет данные, которые не соответствуют ранее заданному размеру.
CURLE_FTP_COULDNT_RETR_FILE (19)
Это был либо странный ответ на команду ‘RETR’, либо завершена передача нулевого байта.
Устаревшая ошибка (20)
Не используется в современных версиях.
CURLE_QUOTE_ERROR (21)
При отправке пользовательских команд «QUOTE» на удаленный сервер одна из команд возвращала код ошибки 400 или выше (для FTP) или иным образом указывала на неудачное выполнение команды.
CURLE_HTTP_RETURNED_ERROR (22)
Возвращается, если CURLOPT_FAILONERROR имеет значение TRUE, а HTTP-сервер возвращает код ошибки >= 400.
CURLE_WRITE_ERROR (23)
Произошла ошибка при записи полученных данных в локальный файл, или ошибка была возвращена в libcurl из обратного вызова записи.
Устаревшая ошибка (24)
Не используется в современных версиях.
CURLE_UPLOAD_FAILED (25)
Не удалось начать загрузку. Для FTP сервер обычно отклонял команду STOR. Буфер ошибок обычно содержит объяснение сервера по этому поводу.
CURLE_READ_ERROR (26)
Возникла проблема чтения локального файла или ошибка, возвращенная обратным вызовом чтения.
CURLE_OUT_OF_MEMORY (27)
Не удалось выполнить запрос на выделение памяти. Это серьезное зло, и все сильно облажается, если это когда-либо произойдет.
CURLE_OPERATION_TIMEDOUT (28)
Тайм-аут операции. Указанный период тайм-аута был достигнут в соответствии с условиями.
Устаревшая ошибка (29)
Не используется в современных версиях.
CURLE_FTP_PORT_FAILED (30)
Команда FTP PORT вернула ошибку. В основном это происходит, когда вы не указали достаточно хороший адрес для использования libcurl. См. CURLOPT_FTPPORT.
CURLE_FTP_COULDNT_USE_REST (31)
Команда FTP REST вернула ошибку. Этого никогда не должно происходить, если сервер в здравом уме.
Устаревшая ошибка (32)
Не используется в современных версиях.
CURLE_RANGE_ERROR (33)
Сервер не поддерживает и не принимает запросы диапазона.
CURLE_HTTP_POST_ERROR (34)
Это странная ошибка, которая в основном возникает из-за внутренней путаницы.
CURLE_SSL_CONNECT_ERROR (35)
Произошла ошибка где-то в рукопожатии SSL/TLS. Вам действительно нужен буфер ошибок и прочтите там сообщение, так как оно немного больше указывает на проблему. Это могут быть сертификаты (форматы файлов, пути, разрешения), пароли и другие.
CURLE_BAD_DOWNLOAD_RESUME (36)
Не удалось возобновить загрузку, поскольку указанное смещение вышло за границы файла.
CURLE_FILE_COULDNT_READ_FILE (37)
Файл, указанный с помощью FILE://, не может быть открыт. Скорее всего, потому что путь к файлу не идентифицирует существующий файл. Вы проверяли права доступа к файлам?
CURLE_LDAP_CANNOT_BIND (38)
LDAP не может выполнить привязку. Сбой операции привязки LDAP.
CURLE_LDAP_SEARCH_FAILED (39)
Ошибка поиска LDAP.
Устаревшая ошибка (40)
Не используется в современных версиях.
CURLE_FUNCTION_NOT_FOUND (41)
Функция не найдена. Требуемая функция zlib не найдена.
CURLE_ABORTED_BY_CALLBACK (42)
Прервано обратным вызовом. Обратный вызов вернул libcurl «отмена».
CURLE_BAD_FUNCTION_ARGUMENT (43)
Функция была вызвана с неверным параметром.
Устаревшая ошибка (44)
Не используется в современных версиях.
CURLE_INTERFACE_FAILED (45)
Ошибка интерфейса. Не удалось использовать указанный исходящий интерфейс. Укажите, какой интерфейс использовать для IP-адреса источника исходящих подключений, с помощью CURLOPT_INTERFACE.
Устаревшая ошибка (46)
Не используется в современных версиях.
CURLE_TOO_MANY_REDIRECTS (47)
Слишком много перенаправлений. При следовании перенаправлениям libcurl достигает максимальной суммы. Установите лимит с помощью CURLOPT_MAXREDIRS.
CURLE_UNKNOWN_OPTION (48)
Опция, переданная libcurl, не распознана/неизвестна. См. соответствующую документацию. Скорее всего проблема в программе, которая использует libcurl. Буфер ошибок может содержать более конкретную информацию о том, к какому именно параметру он относится.
CURLE_SETOPT_OPTION_SYNTAX (49)
Параметр, переданный в setopt, был неправильно отформатирован. См. сообщение об ошибке для получения подробной информации о том, какой вариант.
Устаревшие ошибки (50-51)
Не используется в современных версиях.
CURLE_GOT_NOTHING (52)
С сервера ничего не было возвращено, и в данных обстоятельствах получение ничего не считается ошибкой.
CURLE_SSL_ENGINE_NOTFOUND (53)
Указанный механизм шифрования не найден.
CURLE_SSL_ENGINE_SETFAILED (54)
Не удалось установить выбранный механизм шифрования SSL по умолчанию.
CURLE_SEND_ERROR (55)
Ошибка отправки сетевых данных.
CURLE_RECV_ERROR (56)
Сбой при получении сетевых данных.
Устаревшая ошибка (57)
Не используется в современных версиях.
ПРОБЛЕМА CURLE_SSL_CERT (58)
проблема с сертификатом локального клиента.
CURLE_SSL_CIPHER (59)
Невозможно использовать указанный шифр.
CURLE_PEER_FAILED_VERIFICATION (60)
SSL-сертификат или отпечаток SSH удаленного сервера признаны недействительными. Этот код ошибки был унифицирован с CURLE_SSL_CACERT с версии 7.62.0. Его предыдущее значение было 51.
CURLE_BAD_CONTENT_ENCODING (61)
Нераспознанное кодирование передачи.
Устаревшая ошибка (62)
Не используется в современных версиях.
CURLE_FILESIZE_EXCEEDED (63)
Превышен максимальный размер файла.
CURLE_USE_SSL_FAILED (64)
Запрошенный уровень FTP SSL не выполнен.
CURLE_SEND_FAIL_REWIND (65)
При выполнении операции отправки curl должен был перемотать данные для повторной передачи, но операция перемотки не удалась.
CURLE_SSL_ENGINE_INITFAILED (66)
Ошибка запуска механизма SSL.
CURLE_LOGIN_DENIED (67)
Удаленный сервер отказал curl в входе в систему (добавлено в 7. 13.1)
CURLE_TFTP_NOTFOUND (68)
Файл не найден на сервере TFTP.
CURLE_TFTP_PERM (69)
Проблема с правами доступа на TFTP-сервере.
CURLE_REMOTE_DISK_FULL (70)
Недостаточно места на сервере.
CURLE_TFTP_ILLEGAL (71)
Недопустимая операция TFTP.
CURLE_TFTP_UNKNOWNID (72)
Неизвестный идентификатор передачи TFTP.
CURLE_REMOTE_FILE_EXISTS (73)
Файл уже существует и не будет перезаписан.
CURLE_TFTP_NOSUCHUSER (74)
Эта ошибка никогда не должна возвращаться правильно работающим сервером TFTP.
Устаревшая ошибка (75-76)
Не используется в современных версиях.
CURLE_SSL_CACERT_BADFILE (77)
Проблема с чтением сертификата SSL CA (путь? права доступа?)
CURLE_REMOTE_FILE_NOT_FOUND (78)
Ресурс, указанный в URL-адресе, не существует.
CURLE_SSH (79)
Неизвестная ошибка во время сеанса SSH.
CURLE_SSL_SHUTDOWN_FAILED (80)
Не удалось закрыть соединение SSL.
CURLE_AGAIN (81)
Сокет не готов к отправке/получению Подождите, пока он будет готов, и повторите попытку. Этот код возврата возвращается только из curl_easy_recv и curl_easy_send (добавлено в 7.18.2)
CURLE_SSL_CRL_BADFILE (82)
Не удалось загрузить файл CRL (добавлено в 7.19.0)
CURLE_SSL_ISSUER_ERROR (83)
Ошибка проверки эмитента (добавлено в 7.19.0)
CURLE_FTP_PRET_FAILED (84)
FTP-сервер вообще не понимает команду PRET или не поддерживает данный аргумент. Будьте осторожны при использовании CURLOPT_CUSTOMREQUEST, пользовательская команда LIST будет отправлена с командой PRET перед PASV. (Добавлено в 7.20.0)
CURLE_RTSP_CSEQ_ERROR (85)
Несоответствие номеров RTSP CSeq.
CURLE_RTSP_SESSION_ERROR (86)
Несоответствие идентификаторов сеанса RTSP.
CURLE_FTP_BAD_FILE_LIST (87)
Невозможно проанализировать список файлов FTP (во время загрузки подстановочных знаков FTP).
CURLE_CHUNK_FAILED (88)
Обратный вызов фрагмента сообщил об ошибке.
CURLE_NO_CONNECTION_AVAILABLE (89)
(только для внутреннего использования, никогда не будет возвращено libcurl) Соединение недоступно, сеанс будет поставлен в очередь. (добавлено в 7.30.0)
CURLE_SSL_PINNEDPUBKEYNOTMATCH (90)
Не удалось сопоставить закрепленный ключ, указанный с помощью CURLOPT_PINNEDPUBLICKEY.
CURLE_SSL_INVALIDCERTSTATUS (91)
Состояние вернуло ошибку при запросе с помощью CURLOPT_SSL_VERIFYSTATUS.
CURLE_HTTP2_STREAM (92)
Ошибка потока на уровне кадрирования HTTP/2.
CURLE_RECURSIVE_API_CALL (93)
Функция API была вызвана из обратного вызова.
CURLE_AUTH_ERROR (94)
Функция проверки подлинности возвратила ошибку.
CURLE_HTTP3 (95)
Обнаружена проблема на уровне HTTP/3. Это несколько общее и может быть одной из нескольких проблем, подробности см. в буфере ошибок.
CURLE_QUIC_CONNECT_ERROR (96)
Ошибка подключения QUIC. Эта ошибка может быть вызвана ошибкой библиотеки SSL. QUIC — это протокол, используемый для передачи HTTP/3.
CURLE_PROXY (97)
Ошибка рукопожатия прокси. CURLINFO_PROXY_ERROR предоставляет дополнительные сведения о конкретной проблеме.
CURLE_SSL_CLIENTCERT (98)
Требуется сертификат клиента SSL.
CURLE_UNRECOVERABLE_POLL (99)
Внутренний вызов poll() или select() возвратил неисправимую ошибку.
CURLE_OBSOLETE*
Эти коды ошибок никогда не возвращаются. Они использовались в старой версии libcurl и в настоящее время не используются.
Curlmcode
Это общий код возврата, используемый функциями в мультиинтерфейсе libcurl. Также обратите внимание на curl_multi_strerror.
CURLM_CALL_MULTI_PERFORM (-1)
На самом деле это не ошибка. Это означает, что вы должны снова вызвать curl_multi_perform, не выполняя select() или что-то подобное между ними. До версии 7.20.0 (выпущенной 9 февраля 2010 г.) это могло быть возвращено curl_multi_perform, но в более поздних версиях этот код возврата никогда не используется.
CURLM_CALL_MULTI_SOCKET (-1)
Псевдоним для CURLM_CALL_MULTI_PERFORM. Никогда не возвращается современными версиями libcurl.
CURLM_OK (0)
Все в порядке.
CURLM_BAD_HANDLE (1)
Переданный дескриптор не является допустимым дескриптором CURLM.
CURLM_BAD_EASY_HANDLE (2)
Простой дескриптор не подходит/действителен. Это может означать, что это совсем не простая ручка, или, возможно, что ручка уже используется этой или другой многофункциональной ручкой.
CURLM_OUT_OF_MEMORY (3)
Ты обречен.
CURLM_INTERNAL_ERROR (4)
Это может быть возвращено только в случае ошибок libcurl. Пожалуйста, сообщите нам об этом!
CURLM_BAD_SOCKET (5)
Переданный сокет не является допустимым, о чем libcurl уже знает. (Добавлено в 7. 15.4)
CURLM_UNKNOWN_OPTION (6)
curl_multi_setopt() с неподдерживаемой опцией (добавлено в 7.15.4)
CURLM_ADDED_ALREADY (7)
Была предпринята попытка добавления простого дескриптора, уже добавленного в мультидескриптор, во второй раз. (Добавлено в 7.32.1)
CURLM_RECURSIVE_API_CALL (8)
Функция API была вызвана из обратного вызова.
CURLM_WAKEUP_FAILURE (9)
Пробуждение недоступно или не удалось.
CURLM_BAD_FUNCTION_ARGUMENT (10)
Функция была вызвана с неверным параметром.
CURLM_ABORTED_BY_CALLBACK (11)
Обратный вызов с несколькими дескрипторами возвратил ошибку.
CURLM_UNRECOVERABLE_POLL (12)
Внутренний вызов poll() или select() возвратил неисправимую ошибку.
Curlshcode
Интерфейс «общего доступа» вернет CURLSHcode, чтобы указать, когда произошла ошибка. Также обратите внимание на curl_share_strerror.
КУРЬШЕ_ОК (0)
Все в порядке. Действуйте как обычно.
CURLSHE_BAD_OPTION (1)
В функцию передан неверный параметр.
CURLSHE_IN_USE (2)
Общий объект в настоящее время используется.
CURLSHE_INVALID (3)
В функцию передан недопустимый общий объект.
CURLSHE_NOMEM (4)
Недостаточно памяти. (Добавлено в 7.12.0)
КУРЬШЕ_НЕ_ВСТРОЕННЫЙ_В (5)
Запрошенное совместное использование невозможно, так как в используемой вами библиотеке не включена эта конкретная функция. (Добавлено в 7.23.0)
Curlucode
Интерфейс URL вернет CURLUcode, чтобы указать, когда произошла ошибка. Также обратите внимание на curl_url_strerror.
CURLUE_BAD_HANDLE (1)
В качестве аргумента был передан недопустимый дескриптор URL.
CURLUE_BAD_PARTPOINTER (2)
В качестве аргумента был передан недопустимый аргумент «часть».
CURLUE_MALFORMED_INPUT (3)
Неправильно сформированный ввод был передан в функцию API URL.
CURLUE_BAD_PORT_NUMBER (4)
Номер порта не является десятичным числом от 0 до 65535.
CURLUE_UNSUPPORTED_SCHEME (5)
Эта сборка libcurl не поддерживает данную схему URL.
CURLUE_URLDECODE (6)
Ошибка декодирования URL, скорее всего из-за мусора во входных данных.
CURLUE_OUT_OF_MEMORY (7)
Ошибка функции памяти.
CURLUE_USER_NOT_ALLOWED (8)
Учетные данные были переданы в URL, когда они запрещены.
CURLUE_UNKNOWN_PART (9)
В функцию API URL был передан неизвестный идентификатор детали.
CURLUE_NO_SCHEME (10)
В URL нет части схемы.
CURLUE_NO_USER (11)
В URL-адресе нет пользовательской части.
CURLUE_NO_PASSWORD (12)
В URL-адресе нет пароля.
CURLUE_NO_OPTIONS (13)
В URL нет опций.
CURLUE_NO_HOST (14)
В URL-адресе нет узловой части.
CURLUE_NO_PORT (15)
В URL-адресе нет порта.
CURLUE_NO_QUERY (16)
В URL-адресе нет части запроса.
CURLUE_NO_FRAGMENT (17)
В URL-адресе нет фрагмента.
CURLUE_NO_ZONEID (18)
В URL-адресе не указан идентификатор зоны.
CURLUE_BAD_FILE_URL (19)
URL-адрес file:// недействителен.
CURLUE_BAD_FRAGMENT (20)
Фрагмент URL содержит неправильные или недопустимые символы.
CURLUE_BAD_HOSTNAME (21)
Имя хоста содержит неверные или недопустимые символы.
CURLUE_BAD_IPV6 (22)
Имя хоста IPv6-адреса содержит неверные или недопустимые символы.
CURLUE_BAD_LOGIN (23)
Часть URL-адреса для входа содержит неверные или недопустимые символы.
CURLUE_BAD_PASSWORD (24)
Часть URL-адреса, содержащая пароль, содержит неверные или недопустимые символы.
CURLUE_BAD_PATH (25)
Часть пути URL-адреса содержала неверные или недопустимые символы.
CURLUE_BAD_QUERY (26)
Запросная часть URL содержит неправильные или недопустимые символы.
CURLUE_BAD_SCHEME (27)
Часть схемы URL-адреса содержала неверные или недопустимые символы.
CURLUE_BAD_SLASHES (28)
URL содержит недопустимое количество косых черт.
CURLUE_BAD_USER (29)
Пользовательская часть URL содержит неправильные или недопустимые символы.
Curlhcode
Интерфейс заголовка возвращает CURLHcode, чтобы указать, когда произошла ошибка.
CURLHE_BADINDEX (1)
Нет заголовка с запрошенным индексом.
CURLHE_MISSING (2)
Такого заголовка не существует.
CURLHE_NOHEADERS (3)
Заголовки вообще не записаны.
CURLHE_NOREQUEST (4)
Не было такого номера запроса.
CURLHE_OUT_OF_MEMORY (5)
Закончились ресурсы
CURLHE_BAD_ARGUMENT (6)
Один или несколько аргументов неверны.
CURLHE_NOT_BUILT_IN (7)
В сборке отключена поддержка HTTP или API заголовков.
См. также
curl_easy_strerror(3), curl_multi_strerror(3), curl_share_strerror(3), curl_url_strerror(3), CURLOPT_ERRORBUFFER(3), CURLOPT_VERBOSE(3), CURLOPT_DEBUGFUNCTION(3)
Эта HTML-страница была создана с помощью roffit.
Ошибка подключения PHP cURL SSL 35
Что делать, если ваши запросы cURL не могут подключить ваш веб-сайт с помощью SSL, разве это не расстраивает?
Обычно PHP cURL Ошибка подключения SSL 35 возникает из-за несоответствия версии или устаревшего пакета cURL.
Мы в Bobcares часто получаем запросы на исправление ошибок SSL cURL в рамках наших служб управления сервером.
Сегодня давайте посмотрим, как наши инженеры службы поддержки исправят ошибку подключения PHP cURL SSL 35 для наших клиентов.
Что такое PHP curl SSL connect error 35?
Прежде чем углубляться в проблему, давайте сначала разберемся, что такое PHP cURL.
cURL означает Клиент для URL . Обычно PHP использует cURL для подключения к указанному URL-адресу веб-сайта. Здесь мы обсуждаем запрос cURL на веб-сайт SSL.
Во многих случаях, когда сервер пытается подключиться к веб-сайту SSL, запрос cURL заканчивается сообщением об ошибке.
ошибка cURL (35): ошибка соединения SSL.
Сообщение об ошибке означает, что где-то произошла ошибка при подтверждении SSL/TLS. Короче говоря, код ошибки cURL 35 обозначает ошибку соединения SSL.
Ошибка может быть связана с устаревшим пакетом cURL, ошибками подключения или несоответствием версии между PHP cURL и протоколом SSL конечного сервера.
Пример ошибки на веб-сайте Drupal будет выглядеть так:
Как исправить ошибку подключения PHP cURL SSL?
До сих пор мы видели, что такое ошибка подключения PHP cURL SSL. Наши преданные инженеры с опытом работы более десяти лет обычно исправляют эту ошибку для наших клиентов.
В качестве первого шага устранения неполадок мы проверяем журнал веб-сервера.
Дает подробную сводку всех рукопожатий SSL/TLS. По этим данным наши специалисты находят точную причину таймаута.
1. Протокол SSL целевого сайта
В большинстве случаев ошибки будут связаны с версиями PHP cURL на сервере.
Например, cURL командной строки может использовать последнюю версию, а протокол SSL может быть устаревшим.
Между тем, если сервер пытается подключиться к конечной точке с более старым протоколом SSL, это завершается ошибкой cURL 35. Это особенно применимо к устаревшим протоколам SSL, таким как SSLv2, SSLv3.
Итак, проверяем версии cURL и SSL протокола. Позже, если есть какое-либо несоответствие версии, наши инженеры службы поддержки обновят ее до последней версии.
2. Устаревший пакет cURL
Аналогично, устаревший пакет cURL на серверах показывает ошибку соединения SSL. В этом случае наши инженеры службы поддержки проверяют версию cURL на сервере.
об/мин -qa | grep curl
Эта команда выдает текущую версию cURL, используемую на сервере.
Позже мы обновим пакет cURL до последней версии. После этого обновляем Пакет Network Security Services (NSS) на сервере с использованием:
yum update -y nss
Это исправляет пакет, и ошибка больше не появляется.
3. Настройка конфигурации cURL
Некоторые клиенты настраивают параметры cURL на сервере. Однако неправильная настройка файла конфигурации PHP cURL приводит к ошибке 35.
В таких случаях наша служба поддержки проверяет файл конфигурации и исправляет его.
Здесь мы сначала подтверждаем наличие поддержки модуля cURL для PHP с помощью команды:
php -i | grep -i curl
Например, правильные настройки выглядят так:
/etc/php.d/curl.ini, завиток поддержка cURL => включена Информация cURL => 7.66.0
Мы также гарантируем, что веб-сайт использует правильную версию PHP с поддержкой cURL.
4. Ограничения брандмауэра
Во многих случаях ошибка cURL SSL также может возникать из-за ограничений брандмауэра на сервере. Например, когда сетевые администраторы запрещают соединения SSL, никакие транзакции данных с сервером и на сервер не происходят.
Таким образом, мы всегда проверяем брандмауэр на сервере и удостоверяемся, что сервер принимает соединения порта SSL от выбранных API и сетей.