Installazione non riuscita: download non riuscito. Nessun trasporto funzionante trovato


10

'Installazione non riuscita: download non riuscito. Nessun trasporto funzionante trovato ".

Questo errore è emerso quando ho provato a installare un tema in WordPress. Come posso risolvere questo problema?


hai lo stesso errore quando installi un plugin?
mmm

Risposte:


13

Il sito WordPress funzionava principalmente senza problemi tranne che in una sezione del dashboard del sito, in cui si verificavano problemi con l'aggiornamento o l'installazione. Quando ho provato a installare il tema, mi è stato visualizzato l'errore "Installazione non riuscita: download non riuscito. Nessun trasporto funzionante trovato".

Fortunatamente, ho risolto il problema con la seguente soluzione .

Si scopre che questo messaggio di errore si verifica quando mancano estensioni su un server di sviluppo, quindi WordPress non è in grado di effettuare richieste HTTP esterne.

La soluzione è piuttosto semplice Le estensioni mancanti che rendono possibili tali richieste HTTP sono già installate con Wamp Server, per impostazione predefinita sono solo disabilitate. Per abilitarli, dobbiamo modificare il file di configurazione php.ini.

Modifica del file php.ini

Il file php.ini contiene un elenco di molte estensioni con alcune disabilitate per impostazione predefinita. L'unica che ho dovuto abilitare era l' estensione openssl.

Ecco i passaggi per abilitare tale estensione:

  1. Avviare Wamp Server.
  2. fai clic sull'icona Wamp Server e passa all'opzione PHP-> php.ini.
  3. fai doppio clic su php.ini. quindi, aprirà il file php.ini nell'editor di testo predefinito.
  4. cerca php_openssl.dll nel file php.ini. -> Vedrai che l'estensione è commentata:; extension = php_openssl.dll
  5. Rimuovi il commento da quella riga rimuovendo i due punti (;)
  6. salva le modifiche.
  7. Riavvia Wamp Server.

Questo è tutto!


3

L'API HTTP WordPress è stata costruita in modo tale da funzionare su più server possibile, provando diversi modi (trasporti) per farlo.

Secondo il messaggio di errore, non ci sono trasporti funzionanti e quindi WordPress non è in grado di effettuare richieste HTTP in uscita.

Ti consiglio di installare qualcosa come il plug-in WordPress Core Control , che ti consente di eseguire il debug di tutti i trasporti HTTP esistenti. È del tutto possibile che mentre un trasporto non funziona, un altro potrebbe essere OK. Questo plug-in consente di disabilitare quello danneggiato e testare l'API HTTP con il nuovo trasporto.

Se si scopre che effettivamente nessuno dei trasporti funziona, dovresti contattare il tuo provider di hosting per installare almeno qualcosa come cURL sul server in modo da poter effettuare richieste HTTP in PHP.


0

Il consiglio su questo messaggio di errore è abbastanza vario e nessuno sembra fornire una risposta completa (vedi alcuni blog , una risposta duplicata e qui e qui su SO). Spero che questo sia un approccio più formale al problema.

Considero solo WordPress su PHP offerto tramite Apache (non posso commentare NginX in questo momento poiché non l'ho provato con PHP, né posso commentare altri framework). La risposta potrebbe mostrare un lieve pregiudizio verso Windows 10 con un Apache 2.4.37 autocostruito, thread thread sicuro PHP 7.2 e WordPress 4.2.X.

sfondo

PHP e cURL spiegano, piuttosto bene che si potrebbe aggiungere, che WordPress fa affidamento su Requests, un involucro attorno alle librerie cURLe fSockets. Requestspreferisce la cURLlibreria, se disponibile, ma presumibilmente tornerà alla fSocketslibreria per scaricare Plugin / Temi / ecc. L'errore "Nessun trasporto" indica che nessuna libreria è configurata correttamente in Apache o PHP. È anche possibile che il firewall stia interferendo con il processo.

Dai un'occhiata

Testare la configurazione di Apache e PHP durante l'installazione e il caricamento dello script PHPinfo standard dal browser. Questo dovrebbe avere una sezione separata intitolata le cURLcui voci mostrano varie informazioni. In caso contrario, installare e caricare il seguente script per verificare.

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

Non so come testare fScokets.

arricciare

Per garantire la disponibilità di cURLè necessario abilitarlo all'interno php.ini.

  • Assicurati che extentions_dirpunti correttamente alla cartella delle estensioni

    extentions_dir="ext"

    (In alternativa extentions_dir="D:PATH/TO/php/ext"è spesso suggerito)

  • Assicurarsi che l' cURLestensione sia abilitata

    extension=curl

    ( extentions=php_curl(.so|.dll)o extentions="PATH/TO/php_curl(.so|.dll)"sono anche suggeriti, possibilmente per PHP <7.2)

  • Da PHP sembra che il eay32, ssh2e ssleay32le biblioteche devono anche essere disponibili su quelli percorso (con OpenSSL 1.1 eay32è stato rinominato crypto-*e ssleay32è stata ribattezzata ssl-*). Su Windows il brutto trucco è copiare queste librerie dalla cartella principale di PHP nella cartella system32o wow64. La soluzione migliore è quella di modificare quelle variabili di percorso per includere la cartella principale di PHP (Personalmente preferisco un percorso pulito che configuro come richiesto ma questo è PHP). Su * nix box sembra semplicemente che sia necessario installare il php5-curlpacchetto per la propria distro.

    Nota: i commenti sulla pagina PHP suggeriscono che si può semplicemente aggiungere LoadFile "PATH/TO/lib(eay32|ssh2)|ssleay32.dll"voci a quelle httpd.confma cURLsembra cercare queste librerie sul proprio percorso; discutendo il suggerimento. Le persone di XAmpp / Wamp riescono a compiere questo passaggio in quanto sembrano scaricare la propria radice sul proprio percorso di sistema.

Una volta fatto riavvia Apache. Se stai usando il monitor Apache dovresti effettivamente fermarti e quindi avviare Apache; questo imposta un nuovo ambiente per l'esecuzione del servizio (salvataggio di un riavvio).

fSockets

Non so cosa sia necessario per farlo funzionare.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.