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 !!!
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.
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 bibliotecas cURL
e fSockets
. Requests
prefere a cURL
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.
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.
<?php
echo 'Curl: ', function_exists('curl_init') ? 'Enabled' : 'Disabled';
?>
Eu não sei como testar fScokets
.
Para garantir que a disponibilidade de cURL
é necessária, é necessário habilitá-lo php.ini
.
Certifique-se de que extentions_dir
aponte corretamente para a pasta de extensões
extentions_dir="ext"
(Como alternativa extentions_dir="D:PATH/TO/php/ext"
é frequentemente sugerido)
Verifique se a cURL
extensã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
, ssh2
e ssleay32
também devem estar disponíveis no caminho (o OpenSSL 1.1 eay32
foi renomeado crypto-*
e ssleay32
renomeado ssl-*
). No Windows, o feio truque é copiar essas bibliotecas da pasta raiz do PHP para a pasta system32
ou 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-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
mas cURL
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).
Não sei o que é necessário para que isso aconteça.