Falha na instalação: falha no download. Nenhum transporte de trabalho encontrado

10

'Falha na instalação: falha no download. Nenhum transporte de trabalho encontrado '.

Essa confusão de erros surgiu quando tentei instalar um tema no WordPress. Como eu resolvo este problema?

mss
fonte
você tem o mesmo erro ao instalar um plugin?
mmm

Respostas:

13

O site WordPress estava funcionando principalmente sem problemas, exceto em uma seção de painel do site, onde havia alguns problemas com a atualização ou instalação. Quando tentei instalar o tema, ocorreu o erro "Falha na instalação: falha no download. Nenhum transporte de trabalho encontrado".

Felizmente, resolvi o problema com a seguinte solução .

Acontece que esta mensagem de erro ocorre quando há extensões ausentes em um servidor de desenvolvimento, portanto o WordPress não pode fazer solicitações HTTP externas.

A solução é bem simples. As extensões ausentes que possibilitam essas solicitações HTTP já estão instaladas no Wamp Server. Por padrão, elas estão desativadas. Para habilitá-los, precisamos editar o arquivo de configuração php.ini.

Editando arquivo php.ini

O arquivo php.ini contém uma lista de muitas extensões com algumas delas desativadas por padrão. O único que eu tive que ativar foi a extensão openssl.

Aqui estão as etapas para habilitar essa extensão:

  1. Inicie o servidor Wamp.
  2. clique no ícone do servidor Wamp e vá para a opção PHP-> php.ini.
  3. clique duas vezes em php.ini. então, ele abrirá o arquivo php.ini no seu Editor de texto padrão.
  4. procure por php_openssl.dll no arquivo php.ini. -> Você verá que a extensão está comentada:; extension = php_openssl.dll
  5. Remova o comentário dessa linha removendo ponto e vírgula (;)
  6. salve as alterações.
  7. Reinicie o servidor Wamp.

É isso que estamos prontos !!!

Ashish Madhavacharya
fonte
3

A API HTTP do WordPress foi criada de forma a funcionar em muitos servidores quanto possível, tentando maneiras diferentes (transportes) de fazer isso.

De acordo com a mensagem de erro, não há transportes funcionando e, portanto, o WordPress não pode fazer solicitações HTTP de saída.

Eu recomendo que você instale algo como o plugin Core Control WordPress, que permite depurar todos os transportes HTTP existentes. É bem possível que, enquanto um transporte não esteja funcionando, outro possa estar OK. Este plug-in permite desativar o quebrado e testar a API HTTP com o novo transporte.

Se, de fato, nenhum dos transportes estiver funcionando, entre em contato com o provedor de hospedagem para instalar pelo menos algo como cURL no servidor para poder fazer solicitações HTTP em PHP.

swissspidy
fonte
0

Os conselhos sobre esta mensagem de erro são bastante variados e ninguém parece fornecer uma resposta abrangente (consulte um blog , uma resposta duplicada e aqui e aqui no SO). Espero que esta seja uma abordagem mais formal sobre o problema.

Considero apenas o WordPress no PHP veiculado via Apache (não posso comentar sobre o NginX no momento, pois ainda não o experimentei com PHP, nem sobre outras estruturas). A resposta pode exibir um leve viés em relação ao Windows 10 com um Apache 2.4.37 auto-construído, PHP 7.2 com thread extraído seguro e WordPress 4.2.X.

fundo

O PHP e o cURL explicam, muito bem que se pode acrescentar, que, sob o capô, o WordPress conta com Requestsum invólucro em torno das bibliotecas cURLe fSockets. Requestsprefere a cURLbiblioteca, se disponível, mas supostamente retornará à fSocketsbiblioteca para baixar Plugins / Themes / etc. O erro "Sem transporte" indica que nenhuma biblioteca está configurada corretamente no Apache ou PHP. Também é possível que o firewall também esteja interferindo no processo.

Verifica

Teste a configuração do Apache e do PHP, configurando e carregando o script PHPinfo padrão no seu navegador. Isso deve ter uma seção separada intitulada cURLcujas entradas mostram várias informações. Caso contrário, configure e carregue o seguinte script para verificar.

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

Eu não sei como testar fScokets.

ondulação

Para garantir que a disponibilidade de cURLé necessária, é necessário habilitá-lo php.ini.

  • Certifique-se de que extentions_diraponte corretamente para a pasta de extensões

    extentions_dir="ext"

    (Como alternativa extentions_dir="D:PATH/TO/php/ext"é frequentemente sugerido)

  • Verifique se a cURLextensão está ativada

    extension=curl

    ( extentions=php_curl(.so|.dll)ou extentions="PATH/TO/php_curl(.so|.dll)"também são sugeridos, possivelmente para PHP <7.2)

  • Do PHP , parece que as bibliotecas eay32, ssh2e ssleay32também devem estar disponíveis no caminho (o OpenSSL 1.1 eay32foi renomeado crypto-*e ssleay32renomeado ssl-*). No Windows, o feio truque é copiar essas bibliotecas da pasta raiz do PHP para a pasta system32ou wow64. A melhor solução é modificar a variável de caminho para incluir a pasta raiz do PHP (pessoalmente, prefiro um caminho limpo que eu configuro conforme necessário, mas esse é o PHP). Nas caixas * nix, parece que é preciso simplesmente instalar o php5-curlpacote para sua distribuição.

    Nota: Os comentários na página PHP sugerem que alguém pode simplesmente adicionar LoadFile "PATH/TO/lib(eay32|ssh2)|ssleay32.dll"entradas a algumas, httpd.confmas cURLparece procurar essas bibliotecas no caminho das mesmas; discutindo a sugestão. O pessoal do XAmpp / Wamp se dá bem com essa etapa, pois parece despejar sua própria raiz no caminho do sistema.

Uma vez feito, reinicie o Apache. Se você estiver usando o monitor Apache, na verdade deve parar e iniciar o Apache; isso configura um novo ambiente para a execução do serviço (poupando uma reinicialização).

fSockets

Não sei o que é necessário para que isso aconteça.

Carel
fonte