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:
Inicie o servidor Wamp.
clique no ícone do servidor Wamp e vá para a opção PHP-> php.ini.
clique duas vezes em php.ini. então, ele abrirá o arquivo php.ini no seu Editor de texto padrão.
procure por php_openssl.dll no arquivo php.ini. -> Você verá que a extensão está comentada:; extension = php_openssl.dll
Remova o comentário dessa linha removendo ponto e vírgula (;)
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.
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.
( 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.
Respostas:
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:
É isso que estamos prontos !!!
fonte
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.
fonte
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
Requests
um invólucro em torno das bibliotecascURL
efSockets
.Requests
prefere acURL
biblioteca, se disponível, mas supostamente retornará àfSockets
biblioteca 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
cURL
cujas entradas mostram várias informações. Caso contrário, configure e carregue o seguinte script para verificar.Eu não sei como testar
fScokets
.ondulação
Para garantir que a disponibilidade de
cURL
é necessária, é necessário habilitá-lophp.ini
.Certifique-se de que
extentions_dir
aponte corretamente para a pasta de extensõesextentions_dir="ext"
(Como alternativa
extentions_dir="D:PATH/TO/php/ext"
é frequentemente sugerido)Verifique se a
cURL
extensão está ativadaextension=curl
(
extentions=php_curl(.so|.dll)
ouextentions="PATH/TO/php_curl(.so|.dll)"
também são sugeridos, possivelmente para PHP <7.2)Do PHP , parece que as bibliotecas
eay32
,ssh2
essleay32
também devem estar disponíveis no caminho (o OpenSSL 1.1eay32
foi renomeadocrypto-*
essleay32
renomeadossl-*
). No Windows, o feio truque é copiar essas bibliotecas da pasta raiz do PHP para a pastasystem32
ouwow64
. 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 ophp5-curl
pacote 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.conf
mascURL
parece 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.
fonte