"Unerwarteter Fehler" bei Aktualisierungsanforderungen

7

Es benötigt eine Verbindung zu wordpress.org und läuft ab. Ich bin hinter einer Unternehmensfirewall. Ich hatte dieses Problem noch nie in früheren Versionen. Warum braucht theme.php Zugriff auf wordpress.org und was kann ich tun, wenn dies nicht der Fall ist (oder etwas, das es mir ermöglicht, meine Proxy-Einstellungen zu verwenden)?

Hinzufügen einer Fehlermeldung:

PHP-Warnung: Ein unerwarteter Fehler ist aufgetreten. Möglicherweise stimmt etwas nicht mit WordPress.org oder der Konfiguration dieses Servers. Wenn Sie weiterhin Probleme haben, versuchen Sie es bitte in den Support-Foren. (WordPress konnte keine sichere Verbindung zu WordPress.org herstellen. Bitte wenden Sie sich an Ihren Serveradministrator.) In C: \ inetpub \ wwwroot \ ticket \ wp-admin \ includes \ theme.php in Zeile 298

Dies ist definitiv neu in 3.7. Wir haben 3.6.1 4-5 mal installiert und keine Probleme. Ich würde Leute haben, die mir den Kopf abhacken, wenn sie ihr Thema nicht ändern könnten.

Update: 3.8 hat viele der Hauptprobleme behoben. Wir können jedoch immer noch keine Plugins finden, keine Themen finden oder die Dashboard-Feeds abrufen. Wenn jemand eine Lösung für diese Probleme hat - auch wenn es sich um einen Vorschlag für den Proxyserver handelt - wäre dies hilfreich.

Stachel
quelle

Antworten:

8

Das Navigieren im WP-Administrator löst im Allgemeinen mehrere externe Anforderungen aus, z. B. das Abrufen von Newsfeeds und Themen- / Plugin-Updates (ohne Berücksichtigung der Plugins / Themen, die möglicherweise selbst ausgeführt werden).

Sie können Konfigurationskonstanten einfügen wp-config.php, um externe Anforderungen vollständig / teilweise zu blockieren:

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

Oder konfigurieren Sie externe Anforderungen für die Verwendung Ihrer Proxy-Einstellungen:

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_USERNAMEund WP_PROXY_PASSWORDzur Authentifizierung.

Selten
quelle
Erstes tolles Feedback. Ich werde ein paar Dinge ausprobieren und berichten. Irgendeine Idee zu der Änderung in 3.7, die das Problem ausgelöst hat? Es gibt auch ein Plugin zum Verwalten dieser Einstellungen. Ich rolle WP-Sites links und rechts aus und würde es hassen, Dinge jedes Mal ändern zu müssen, wenn es eine neue Installation gibt oder jemand ein Upgrade durchführt.
STing
@STing Ich denke, es ist wahrscheinlich, dass API-Anfragen gezwungen werden, SSL in 3.7 zu verwenden
Rarst
Mein Server unterstützt SSL. Was muss ich tun, damit die Site zu https zurückruft? Das scheint mir ein Fehler zu sein.
STing
@STing Da WP für HTTP-Anforderungen zwischen mehreren Back-Ends wählt, ist dies ohne praktisches Debuggen und besseres Verständnis der Vorgänge schwer zu empfehlen. Ich würde mit der Installation von Core Control beginnen und einen Blick darauf werfen.
Erster
Ugggg. Ist dies also ein Problem bei Personen, auf denen SSL installiert ist, oder nur bei SSL plus Firewall?
STing
2

Dies ist ein Problem mit Änderungen in der HTTP-API von WordPress. Es ist nicht mehr vollständig mit cURL kompatibel.
Ich bin nicht sicher, warum genau es passiert (es werden keine Kontextinformationen angegeben, wenn dieser Fehler auftritt), aber Sie können eine vorübergehende Korrektur hinzufügen.

Fügen Sie in einem Plugin oder ganz am Ende Ihres Plugins wp-config.phpdie folgenden Zeilen hinzu:

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

Dadurch wird cURL deaktiviert und die Fehlermeldung wird ausgeblendet, ohne dass andere Komponenten auf dem Server beeinträchtigt werden.


Der Vollständigkeit halber hier meine aktuellen cURL-Details:

$ 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
Fuxia
quelle
1

Ich hatte keine Zeitüberschreitung, aber die Anforderungen von https://api.wordpress.org erhielten 500 handshakefailedFehler von der Unternehmensfirewall. Ich stellte fest, dass ich auf meinem Ubuntu 12.04-System keine Installation durchführen konnte php5-curl. Nachdem ich es installiert und apache2 neu gestartet hatte, verschwand das Problem.

Dan Halbert
quelle
Ich werde es noch einmal überprüfen, aber ziemlich sicher, dass die Locke läuft. Es ist jedoch gut zu wissen, dass eine Locke erforderlich ist. Außerdem wird 3.8 getestet und die Frage aktualisiert, ob es immer noch ein Problem ist oder nicht.
STing
0

In Ihrem Fall handelt es sich möglicherweise nur um ein Netzwerkproblem. Aber ich hatte ein Problem mit der gleichen Warnung (daher kann es zutreffen, obwohl es mehrere mögliche Gründe haben kann) und habe hier in Wordpress eine Lösung gefunden , allerdings auf localhost. Sie schlugen vor, die in der Fehlermeldung angegebenen Dateien durch dieselben Dateien aus der Neuinstallation derselben Wordpress-Version zu ersetzen (laden Sie einfach die ZIP-Datei für diese Version herunter, entpacken Sie die betreffende Datei und kopieren Sie sie).

In meinem Fall war es (path-to-wordpress)/wp-include/update.php, in Ihrem Fall wäre es (path-to-wordpress)/wp-admin/include/theme.php. Nach meinem Verständnis wurden einige Teile einer Datei, in der das Herstellen der sicheren Verbindung behandelt wird, während eines Updates beschädigt.

Pavel V.
quelle