Сайт WordPress в основном работал без проблем, за исключением раздела панели инструментов сайта, где у него были некоторые проблемы с обновлением или установкой. Когда я попытался установить тему, она выдала мне ошибку «Установка не удалась: загрузка не удалась. Работающие транспорты не найдены».
К счастью, я исправил проблему с помощью следующего решения .
Оказывается, это сообщение об ошибке появляется, когда на сервере разработки отсутствуют отсутствующие расширения , поэтому WordPress не может выполнять внешние HTTP-запросы.
Решение довольно простое. Недостающие расширения, делающие эти HTTP-запросы возможными, уже установлены вместе с Wamp Server. По умолчанию они просто отключены. Чтобы включить их, нам нужно отредактировать файл конфигурации php.ini.
Редактирование файла php.ini
Файл php.ini содержит список многих расширений, некоторые из которых по умолчанию отключены. Единственное, что мне нужно было включить - это расширение openssl.
Вот шаги, чтобы включить это расширение:
Запустите Wamp Server.
нажмите на значок сервера Wamp и перейдите к опции PHP-> php.ini.
дважды щелкните по php.ini. поэтому он откроет файл php.ini в вашем текстовом редакторе по умолчанию.
поиск php_openssl.dll в файле php.ini. -> Вы увидите, что расширение закомментировано:; extension = php_openssl.dll
Раскомментируйте эту строку, удалив точку с запятой (;)
HTTP-API WordPress был построен таким образом, что он работает на многих серверах, насколько это возможно, пробуя различные способы (транспорты) для этого.
Согласно сообщению об ошибке, рабочие транспорты отсутствуют, и поэтому WordPress не может отправлять исходящие HTTP-запросы.
Я бы порекомендовал вам установить что-то вроде плагина Core Control WordPress, который позволяет отлаживать все существующие HTTP-транспорты. Вполне возможно, что пока один транспорт не работает, другой может быть в порядке. Этот плагин позволяет отключить сломанный и протестировать HTTP API с новым транспортом.
Если выясняется, что на самом деле ни один из транспортов не работает, вам следует обратиться к вашему хостинг-провайдеру, чтобы хотя бы установить что-то вроде cURL на сервере, чтобы вы могли делать HTTP-запросы в PHP.
Советы по этому сообщению об ошибках весьма разнообразны, и никто, кажется, не дает исчерпывающего ответа (см. Некоторый блог , двуличный ответ и здесь и здесь на 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, записи которого показывают различную информацию. В противном случае настройте и загрузите следующий скрипт для проверки.
Для обеспечения доступности 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; это создает новую среду для запуска службы (экономия при перезапуске).
Ответы:
Сайт WordPress в основном работал без проблем, за исключением раздела панели инструментов сайта, где у него были некоторые проблемы с обновлением или установкой. Когда я попытался установить тему, она выдала мне ошибку «Установка не удалась: загрузка не удалась. Работающие транспорты не найдены».
К счастью, я исправил проблему с помощью следующего решения .
Оказывается, это сообщение об ошибке появляется, когда на сервере разработки отсутствуют отсутствующие расширения , поэтому WordPress не может выполнять внешние HTTP-запросы.
Решение довольно простое. Недостающие расширения, делающие эти HTTP-запросы возможными, уже установлены вместе с Wamp Server. По умолчанию они просто отключены. Чтобы включить их, нам нужно отредактировать файл конфигурации php.ini.
Редактирование файла php.ini
Файл php.ini содержит список многих расширений, некоторые из которых по умолчанию отключены. Единственное, что мне нужно было включить - это расширение openssl.
Вот шаги, чтобы включить это расширение:
Вот и все, что мы сделали !!!
источник
HTTP-API WordPress был построен таким образом, что он работает на многих серверах, насколько это возможно, пробуя различные способы (транспорты) для этого.
Согласно сообщению об ошибке, рабочие транспорты отсутствуют, и поэтому WordPress не может отправлять исходящие HTTP-запросы.
Я бы порекомендовал вам установить что-то вроде плагина Core Control WordPress, который позволяет отлаживать все существующие HTTP-транспорты. Вполне возможно, что пока один транспорт не работает, другой может быть в порядке. Этот плагин позволяет отключить сломанный и протестировать HTTP API с новым транспортом.
Если выясняется, что на самом деле ни один из транспортов не работает, вам следует обратиться к вашему хостинг-провайдеру, чтобы хотя бы установить что-то вроде cURL на сервере, чтобы вы могли делать HTTP-запросы в PHP.
источник
Советы по этому сообщению об ошибках весьма разнообразны, и никто, кажется, не дает исчерпывающего ответа (см. Некоторый блог , двуличный ответ и здесь и здесь на 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
, записи которого показывают различную информацию. В противном случае настройте и загрузите следующий скрипт для проверки.Я не знаю, как проверить
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.1eay32
был переименован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
Я не знаю, что необходимо для этого.
источник