web-dev-qa-db-fra.com

L'installation a échoué: le téléchargement a échoué. Aucun transport de travail trouvé

'L'installation a échoué: le téléchargement a échoué. Aucun transport de travail 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?

8
mss

Le site WordPress fonctionnait généralement 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 theme, cela m'a donné l'erreur "L'installation a échoué: le téléchargement a échoué. Aucun transport en cours d'utilisation n'a été trouvé".

Heureusement, j'ai résolu le problème en suivant solution .

Il s'avère que ce message d'erreur se produit lorsqu'il y a extensions manquantes sur un serveur de développement, de sorte que WordPress n'est pas en mesure de faire des demandes HTTP externes.

La solution est assez simple. Les extensions manquantes rendant 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 éditer le fichier de configuration php.ini.

Éditer le fichier php.ini

Le fichier php.ini contient une liste de nombreuses extensions, certaines étant désactivées par défaut. Le seul que je devais activer était l'extension openssl.

Voici les étapes pour activer cette extension:

  1. Démarrer le serveur Wamp.
  2. cliquez sur l'icône du serveur Wamp et passez à l'option PHP-> php.ini.
  3. double-cliquez sur php.ini. alors, le fichier php.ini sera ouvert 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. enregistrer les modifications.
  7. Redémarrez Wamp Server.

C'est ça, nous sommes faits !!!

9

L'API WordPress HTTP a été conçue de manière à fonctionner sur un maximum de serveurs, en utilisant différentes méthodes (transports).

Selon le message d'erreur, il n'y a pas de transport fonctionnel et donc WordPress n'est pas en mesure de faire de requête HTTP sortante.

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

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

3
swissspidy

Les conseils sur ce message d'erreur sont assez variés et personne ne semble fournir une réponse complète (voir quelques blogs , une réponse dupliquée et ici et ici sur SO). Espérons que ceci est une approche plus formelle du problème.

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

Contexte

PHP et cURL explique, pourrait-on dire, que sous le capot, WordPress s’appuie sur Requests, un wrapper autour des bibliothèques cURL et fSockets. Requests préfère la bibliothèque cURL si disponible, mais est supposé revenir à la bibliothèque fSockets 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 pour la configuration et le chargement du script standard PHPinfo depuis votre navigateur. Cela devrait avoir une section séparée intitulée cURL dont les entrées montrent diverses informations. Sinon, configurez et chargez le script suivant à vérifier.

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

Je ne sais pas comment tester fScokets.

cURL

Pour assurer la disponibilité de cURL, il semble nécessaire de l'activer dans php.ini.

  • Assurez-vous que le extentions_dir pointe correctement vers le dossier d'extensions

    extentions_dir="ext"

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

  • Assurez-vous que l'extension cURL 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)

  • De PHP , il semble que les bibliothèques eay32, ssh2 et ssleay32 doivent également être disponibles sur un chemin (avec OpenSSL 1.1, eay32 a été renommé crypto-* et ssleay32 a été renommé ssl-*). Sous Windows, le vilain hack consiste à copier ces bibliothèques du dossier racine PHP dans le dossier system32 ou wow64. La meilleure solution consiste à modifier une variable de chemin pour inclure le dossier racine PHP (Personnellement, je préfère un chemin propre que je configure selon les besoins, mais il s'agit de PHP). Sur les boîtes * nix, il semble simplement qu'il soit simplement nécessaire d'installer le paquet php5-curl pour la distribution.

    Note: Les commentaires sur la page PHP suggèrent que l’on peut simplement ajouter des entrées LoadFile "PATH/TO/lib(eay32|ssh2)|ssleay32.dll" à un httpd.conf mais cURL semble rechercher ces bibliothèques sur leur chemin; faire de la suggestion. Les utilisateurs de XAmpp/Wamp s'en sortent avec cette étape, car ils semblent jeter leur propre racine sur leur chemin système.

Une fois cela fait, redémarrez Apache. Si vous utilisez le moniteur Apache, vous devez réellement arrêter puis démarrer Apache. ceci configure un nouvel environnement pour que le service s'exécute (en vous enregistrant un redémarrage).

fSockets

Je ne sais pas ce qui est nécessaire pour que cela se passe.

0
Carel