Ошибка cURL error 77 в WordPress
Разберем, как устранить ошибку "Обновление не удалось: Загрузка не удалась. cURL error 77" при обновлении любого плагина в WordPress.
Кроме того, ошибка имеется и при сохранении кода в редакторе WP "Невозможно соединиться с сайтом для проверки кода на ошибки, был сделан откат изменений в PHP-коде. Вам нужно загрузить измененный PHP файл другим способом, например через FTP или SFTP", которая возникает при сохранении изменений в header.php, footer.php и т.п.
Помимо этого, если сохранять код через панель хостинга или FTP, то он сохраняется без проблем. Вроде бы всё ничего, пустяк, но каждый раз скачивать последнии версии плагинов и устанавливать их, чтобы они были обновлены, так себе идея.
Дело в том, что сам лично недавно столкнулся с проблемой на своем же сайте WordPress с ошибкой cURL error 77, а сам сайт еще работает за Cloudflare, что усложняет понимания решения ошибки. Примечательно то, что ошибка возникла, когда поддержка обновила пакеты оси ISP-manager и сертификаты просто стали непригодными.
cURL error 77 - Это ошибка на стороне сервера, которая указывает на то, что файлы сертификатов цепочки отсутствуют или "сломаны". Обычно эта ошибка возникает из-за устаревших сертификатов SSL для cURL, установленных на сервере. В данном случае сервер можно исключить, если работает Cloudflare, так как проблемы с SLL могут быть и там.
Также, если в WordPress открыть графу "Инструменты" > "Здоровье сайта", то можно увидеть кучу ошибок связанных с "cURL error 77":
- При тестировании REST API возникла ошибка с ответом http_reguest_failed
- Сайт не смог подключиться к серверам WordPress по 198.143.164.251
- Сайт не смог выполнить петлевой запрос к сайту
Методом долгого поиска и создания топиков на различных форумов я все же устранил ошибку самостоятельно, так как поддержка хостинга мне не помогла за сутки ничем, хотя я дал кучу информации куда "капать", но сам не желал этого делать, так как опыта мало и последствий мог не знать, но я рискнул и всё устранил.
Дело в том, что в WordPress есть файл сертификата ca-bundle.crt, который мог быть испорченным или были в нем повреждены цепочки. Кроме того, после обновления SLL он мог просто не соответствовать и его нужно заменить но новый.
Как исправить ошибку cURL error 77 в WrodPress
1. Скачиваем оригинальный новый WordPress с официального сайта, и там нужно взять файл ca-bundle.crt по пути \wp-includes\certificates.
2. Если сайт работает за Cloudlfare, то отключите все параметры правил WAF/Rules, кэширование, отключите проксирование DNS и нажмите на Pause Cloudflare on this site. Если сайт не работает под CF, то пропустите данный пункт.
3. Далее заходите на свой хостинг через панель менеджера файлов и переходим по пути:
- var/www/www-root/data/www/mywebpc.ru/wp-includes/certificates/
- Скачайте на всякий на всякий случай текущий там файл ca-bundle.crt
- Далее удалите его и закиньте новый, взятый с нового WordPress (способ 1)
- Далее перезагрузите сервер "Администратирование" > "Перезагрузить сервер"
❗Далее обновите плагины и WP, после чего можете обратно включить CF, если сайт работал под ним.