web-dev-qa-db-fra.com

"Erreur inattendue" sur les demandes de mise à jour

Il doit être connecté à wordpress.org et arrive à expiration. Je suis derrière un pare-feu d'entreprise. Je n'ai jamais eu ce problème soulevé auparavant dans les versions précédentes. Pourquoi themes.php a-t-il besoin d'accéder à wordpress.org et que puis-je faire si ce n'est pas le cas (ou peut-être quelque chose qui me permettra d'utiliser mes paramètres de proxy).

Ajout dans le message d'erreur:

Avertissement PHP: Une erreur inattendue s'est produite. Quelque chose ne va pas avec WordPress.org ou la configuration de ce serveur. Si vous continuez à avoir des problèmes, veuillez essayer les forums de support. (WordPress n'a pas pu établir une connexion sécurisée avec WordPress.org. Veuillez contacter votre administrateur de serveur.) Dans C:\inetpub\wwwroot\ticket\wp-admin\includes\theme.php on line 298

C'est définitivement nouveau pour 3.7. Nous avons 3.6.1 installé 4-5 fois et aucun problème. J'aurais des gens me couper la tête s'ils ne pouvaient pas changer de thème.

Mise à jour: 3.8 corrige un grand nombre des problèmes majeurs. Cependant, nous ne pouvons toujours pas trouver de plugins, de thèmes ou d’obtenir des flux de tableau de bord. Si quelqu'un a une solution à cela - même s'il s'agit d'une suggestion pour le serveur proxy, cela serait utile.

7
STing

La navigation de WPadmin en général a tendance à déclencher plusieurs requêtes externes, telles que l'extraction de flux de nouvelles et les mises à jour de thèmes/plugins (sans compter le plugin/les thèmes pouvant être utilisés par eux-mêmes).

Vous pouvez insérer des constantes de configuration dans wp-config.php pour bloquer complètement/partiellement les requêtes externes:

define( 'WP_HTTP_BLOCK_EXTERNAL', true );
define( 'WP_ACCESSIBLE_HOSTS', 'api.wordpress.org,*.github.com' );

Ou configurez des requêtes externes pour utiliser vos paramètres de proxy:

define('WP_PROXY_Host', '192.168.84.101');
define('WP_PROXY_PORT', '8080');
define('WP_PROXY_BYPASS_HOSTS', 'localhost, www.example.com, *.wordpress.org');

Plus WP_PROXY_USERNAME et WP_PROXY_PASSWORD pour l'authentification.

8
Rarst

C’est un problème de modification de l’API HTTP de WordPress. Il n’est plus totalement compatible avec cURL.
Je ne suis pas sûr de savoir pourquoi exactement cela se produit (aucune information de contexte n’est fournie, lorsque cette erreur se produit), mais vous pouvez ajouter un correctif temporaire.

Dans un plugin, ou à la toute fin de votre wp-config.php, ajoutez les lignes suivantes:

add_filter( 'http_api_transports', function()
{
    return array( 'streams' );
});

Cela désactivera cURL et fera disparaître le message d'erreur sans affecter les autres composants du serveur.


Pour être complet, voici mes détails actuels sur cURL:

$ curl --version
curl 7.26.0 (i686-pc-mingw32) libcurl/7.26.0 OpenSSL/0.9.8x zlib/1.2.7
Protocols: dict file ftp ftps Gopher http https imap imaps ldap pop3 pop3s rtsp smtp smtps telnet tf
tp
Features: GSS-Negotiate Largefile NTLM SSL SSPI libz
2
fuxia

Je n'ai pas eu de délais d'expiration, mais les demandes https://api.wordpress.org obtenaient des erreurs 500 handshakefailed du pare-feu de l'entreprise. J'ai découvert que sur mon système Ubuntu 12.04, je n'avais pas réussi à installer php5-curl. Une fois installé et redémarré Apache2, le problème a disparu.

1
Dan Halbert

Dans votre cas, il pourrait ne s'agir que d'un problème de réseau. Mais j'ai eu un problème avec le même avertissement (donc il peut s'appliquer, même s'il peut avoir plusieurs raisons) et j'ai trouvé une solution dans Wordpress ici , bien que sur localhost. Ils ont suggéré de remplacer les fichiers référencés dans le message d'erreur par les mêmes fichiers provenant d'une nouvelle installation de la même version de Wordpress (il suffit de télécharger le fichier .Zip correspondant à cette version, de décompresser et de copier le fichier en question).

Dans mon cas, c'était (path-to-wordpress)/wp-include/update.php, dans votre cas, ce serait (path-to-wordpress)/wp-admin/include/theme.php. Si j'ai bien compris le problème, certaines parties d'un fichier dans lesquelles l'établissement de la connexion sécurisée est gérée ont été corrompues au cours d'une mise à jour.

0
Pavel V.