Установка не удалась: загрузка не удалась. Работающие транспорты не найдены

10

'Установка не удалась: загрузка не удалась. Не найдено ни одного рабочего транспорта ».

Эта ошибка возникла, когда я попытался установить тему в WordPress. Как мне решить эту проблему?

гпп
источник
у вас такая же ошибка при установке плагина?
ммм

Ответы:

13

Сайт WordPress в основном работал без проблем, за исключением раздела панели инструментов сайта, где у него были некоторые проблемы с обновлением или установкой. Когда я попытался установить тему, она выдала мне ошибку «Установка не удалась: загрузка не удалась. Работающие транспорты не найдены».

К счастью, я исправил проблему с помощью следующего решения .

Оказывается, это сообщение об ошибке появляется, когда на сервере разработки отсутствуют отсутствующие расширения , поэтому WordPress не может выполнять внешние HTTP-запросы.

Решение довольно простое. Недостающие расширения, делающие эти HTTP-запросы возможными, уже установлены вместе с Wamp Server. По умолчанию они просто отключены. Чтобы включить их, нам нужно отредактировать файл конфигурации php.ini.

Редактирование файла php.ini

Файл php.ini содержит список многих расширений, некоторые из которых по умолчанию отключены. Единственное, что мне нужно было включить - это расширение openssl.

Вот шаги, чтобы включить это расширение:

  1. Запустите Wamp Server.
  2. нажмите на значок сервера Wamp и перейдите к опции PHP-> php.ini.
  3. дважды щелкните по php.ini. поэтому он откроет файл php.ini в вашем текстовом редакторе по умолчанию.
  4. поиск php_openssl.dll в файле php.ini. -> Вы увидите, что расширение закомментировано:; extension = php_openssl.dll
  5. Раскомментируйте эту строку, удалив точку с запятой (;)
  6. сохранить изменения.
  7. Перезагрузите Wamp-сервер.

Вот и все, что мы сделали !!!

Ашиш Мадхавачарья
источник
3

HTTP-API WordPress был построен таким образом, что он работает на многих серверах, насколько это возможно, пробуя различные способы (транспорты) для этого.

Согласно сообщению об ошибке, рабочие транспорты отсутствуют, и поэтому WordPress не может отправлять исходящие HTTP-запросы.

Я бы порекомендовал вам установить что-то вроде плагина Core Control WordPress, который позволяет отлаживать все существующие HTTP-транспорты. Вполне возможно, что пока один транспорт не работает, другой может быть в порядке. Этот плагин позволяет отключить сломанный и протестировать HTTP API с новым транспортом.

Если выясняется, что на самом деле ни один из транспортов не работает, вам следует обратиться к вашему хостинг-провайдеру, чтобы хотя бы установить что-то вроде cURL на сервере, чтобы вы могли делать HTTP-запросы в PHP.

swissspidy
источник
0

Советы по этому сообщению об ошибках весьма разнообразны, и никто, кажется, не дает исчерпывающего ответа (см. Некоторый блог , двуличный ответ и здесь и здесь на SO). Надеюсь, это более формальный взгляд на проблему.

Я рассматриваю только WordPress на PHP, обслуживаемый через Apache (в настоящее время я не могу комментировать NginX, так как я не пробовал его с PHP, и не могу комментировать другие фреймворки). Ответ может демонстрировать умеренный уклон по отношению к Windows 10 с помощью собственной сборки Apache 2.4.37, извлеченного поточно-ориентированного PHP 7.2 и WordPress 4.2.X.

Фон

PHP и CURL объясняет, довольно хорошо можно было бы добавить, что под капотом WordPress полагается Requests, оберткой cURLи fSocketsбиблиотек. Requestsпредпочитает cURLбиблиотеку, если она доступна, но якобы прибегнет к fSocketsбиблиотеке для загрузки плагинов / тем / и т. д. Ошибка «Нет транспорта» указывает на то, что ни одна библиотека не настроена должным образом в Apache или PHP. Также возможно, что брандмауэр тоже мешает процессу.

Проверьте

Протестируйте конфигурацию Apache и PHP, настроив и загрузив стандартный скрипт PHPinfo из вашего браузера. У этого должен быть отдельный раздел, озаглавленный cURL, записи которого показывают различную информацию. В противном случае настройте и загрузите следующий скрипт для проверки.

<?php
echo 'Curl: ', function_exists('curl_init') ? 'Enabled' : 'Disabled';
?>

Я не знаю, как проверить fScokets.

завивать

Для обеспечения доступности cURLпредставляется необходимым включить его в php.ini.

  • Убедитесь, что extentions_dirправильно указывает на папку с расширениями

    extentions_dir="ext"

    (В качестве альтернативы extentions_dir="D:PATH/TO/php/ext"часто предлагается)

  • Убедитесь, что cURLрасширение включено

    extension=curl

    ( extentions=php_curl(.so|.dll)или extentions="PATH/TO/php_curl(.so|.dll)"также предлагается, возможно, для PHP <7.2)

  • Из PHP кажется, что библиотеки eay32, ssh2и ssleay32также должны быть доступны по одному пути (С OpenSSL 1.1 eay32был переименован crypto-*и ssleay32переименован ssl-*). На Windows отвратительный хак - скопировать эти библиотеки из корневой папки PHP в папку system32или wow64. Лучшее решение состоит в том, чтобы изменить переменную пути так, чтобы она включала корневую папку PHP (лично я предпочитаю чистый путь, который я настраиваю по мере необходимости, но это PHP). На * nix-боксах кажется, что нужно просто установить php5-curlпакет для своего дистрибутива.

    Примечание: комментарии на странице PHP предполагают, что можно просто добавлять LoadFile "PATH/TO/lib(eay32|ssh2)|ssleay32.dll"записи к ним, httpd.confно, cURLпохоже, ищет эти библиотеки по пути; спорить с предложением. Люди XAmpp / Wamp сходят с этого шага, поскольку они, похоже, сбрасывают свой собственный корень на системный путь.

После этого перезапустите Apache. Если вы используете монитор Apache, вам следует остановиться и запустить Apache; это создает новую среду для запуска службы (экономия при перезапуске).

fSockets

Я не знаю, что необходимо для этого.

Carel
источник