Risposte:
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:
Questo è tutto!
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.
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.
PHP e cURL spiegano, piuttosto bene che si potrebbe aggiungere, che WordPress fa affidamento su Requests
, un involucro attorno alle librerie cURL
e fSockets
. Requests
preferisce la cURL
libreria, se disponibile, ma presumibilmente tornerà alla fSockets
libreria 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.
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 cURL
cui 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
.
Per garantire la disponibilità di cURL
è necessario abilitarlo all'interno php.ini
.
Assicurati che extentions_dir
punti correttamente alla cartella delle estensioni
extentions_dir="ext"
(In alternativa extentions_dir="D:PATH/TO/php/ext"
è spesso suggerito)
Assicurarsi che l' cURL
estensione 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
, ssh2
e ssleay32
le 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 system32
o 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-curl
pacchetto 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.conf
ma cURL
sembra 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).
Non so cosa sia necessario per farlo funzionare.