Échec de l'installation: le téléchargement a échoué. Aucun transport fonctionnel trouvé

10

'L'installation a échoué: le téléchargement a échoué. Aucun transport fonctionnel trouvé ».

Ce désordre d'erreur est survenu lorsque j'ai essayé d'installer un thème dans WordPress. Comment résoudre ce problème?

mss
la source
avez-vous la même erreur lorsque vous installez un plugin?
mmm

Réponses:

13

Le site WordPress fonctionnait principalement sans problème, sauf dans une section de tableau de bord du site, où il rencontrait des problèmes de mise à jour ou d'installation. Lorsque j'ai essayé d'installer le thème, il m'a donné l'erreur "Échec de l'installation: Échec du téléchargement. Aucun transport fonctionnel trouvé".

Heureusement, j'ai résolu le problème avec la solution suivante .

Il s'avère que ce message d'erreur se produit lorsqu'il manque des extensions sur un serveur de développement, de sorte que WordPress ne peut pas effectuer de requêtes HTTP externes.

La solution est assez simple. Les extensions manquantes qui rendent ces requêtes HTTP possibles sont déjà installées avec Wamp Server, Par défaut, elles sont simplement désactivées. Pour les activer, nous devons modifier le fichier de configuration php.ini.

Modification du fichier php.ini

Le fichier php.ini contient une liste de nombreuses extensions dont certaines sont désactivées par défaut. Le seul que j'ai dû activer était l' extension openssl.

Voici les étapes pour activer cette extension:

  1. Démarrez Wamp Server.
  2. cliquez sur l'icône du serveur Wamp et passez à l'option PHP-> php.ini.
  3. double-cliquez sur php.ini. ainsi, il ouvrira le fichier php.ini dans votre éditeur de texte par défaut.
  4. recherchez php_openssl.dll dans le fichier php.ini. -> Vous verrez que l'extension est commentée:; extension = php_openssl.dll
  5. Décommentez cette ligne en supprimant le point-virgule (;)
  6. enregistrez les modifications.
  7. Redémarrez le serveur Wamp.

Voilà c'est fini !!!

Ashish Madhavacharya
la source
3

L'API WordPress HTTP a été conçue de manière à fonctionner sur de nombreux serveurs autant que possible, en essayant différentes manières (transports) de le faire.

Selon le message d'erreur, aucun transport ne fonctionne et WordPress n'est donc pas en mesure d'effectuer de requêtes HTTP sortantes.

Je vous recommande d'installer quelque chose comme le plugin Word Control de Core Control , qui vous permet de déboguer tous les transports HTTP existants. Il est tout à fait possible que pendant qu'un transport ne fonctionne pas, un autre soit OK. Ce plugin vous permet de désactiver celui cassé et de tester l'API HTTP avec le nouveau transport.

S'il s'avère qu'en effet aucun des transports ne fonctionne, vous devez contacter votre hébergeur pour au moins installer quelque chose comme cURL sur le serveur afin de pouvoir faire des requêtes HTTP en PHP.

swissspidy
la source
0

Les conseils sur ce message d'erreur sont assez variés et personne ne semble fournir une réponse complète (voir un blog , une réponse en double et ici et ici sur SO). Espérons que ce soit une approche plus formelle du problème.

Je ne considère que WordPress sur PHP servi via Apache (je ne peux pas commenter NginX pour le moment car je ne l'ai pas essayé avec PHP, ni commenter d'autres frameworks). La réponse peut présenter un léger biais vers Windows 10 avec un Apache 2.4.37 auto-construit, un thread sécurisé PHP 7.2 et WordPress 4.2.X.

Contexte

PHP et cURL expliquent, plutôt gentiment, pourrait-on ajouter, que sous le capot, WordPress s'appuie sur Requestsun wrapper autour des bibliothèques cURLet fSockets. Requestspréfère la cURLbibliothèque si elle est disponible mais sera censée revenir à la fSocketsbibliothèque pour télécharger des plugins / thèmes / etc. L'erreur "Aucun transport" indique qu'aucune des bibliothèques n'est correctement configurée dans Apache ou PHP. Il est également possible que le pare-feu interfère également avec le processus.

Vérifier

Testez la configuration d'Apache et de PHP en configurant et en chargeant le script PHPinfo standard à partir de votre navigateur. Cela devrait avoir une section distincte intitulée cURLdont les entrées affichent diverses informations. Sinon, configurez et chargez le script suivant pour vérifier.

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

Je ne sais pas comment tester fScokets.

boucle

Pour garantir la disponibilité de, il cURLsemble nécessaire de l'activer à l'intérieur php.ini.

  • Assurez-vous que le extentions_dirdossier pointe correctement vers le dossier des extensions

    extentions_dir="ext"

    (Alternativement extentions_dir="D:PATH/TO/php/ext"est souvent suggéré)

  • Assurez-vous que l' cURLextension est activée

    extension=curl

    ( extentions=php_curl(.so|.dll)ou extentions="PATH/TO/php_curl(.so|.dll)"sont également suggérés, éventuellement pour PHP <7.2)

  • Depuis PHP, il semble que les bibliothèques eay32, ssh2et ssleay32doivent également être disponibles sur leur chemin (avec OpenSSL 1.1 a eay32été renommé crypto-*et a ssleay32été renommé ssl-*). Sur Windows, le hack laid consiste à copier ces bibliothèques du dossier racine PHP dans le dossier system32ou wow64. La meilleure solution est de modifier sa variable de chemin pour inclure le dossier racine PHP (Personnellement, je préfère un chemin propre que je configure comme requis mais c'est PHP). Sur les boîtes * nix, il semble qu'il suffit d'installer le php5-curlpackage pour la distribution.

    Remarque: Les commentaires sur la page PHP suggèrent que l'on peut simplement ajouter des LoadFile "PATH/TO/lib(eay32|ssh2)|ssleay32.dll"entrées à celles-ci httpd.confmais cURLsemble rechercher ces bibliothèques sur leur chemin; discutant de la suggestion. Les gens XAmpp / Wamp s'en sortent avec cette étape car ils semblent vider leur propre racine sur leur chemin système.

Une fois terminé, redémarrez Apache. Si vous utilisez le moniteur Apache, vous devez réellement arrêter puis démarrer Apache; cela met en place un nouvel environnement pour que le service s'exécute (vous permettant de redémarrer).

fSockets

Je ne sais pas ce qui est nécessaire pour faire avancer les choses.

Carel
la source