Noblogblog's Blog

Javen, Springen, Nerden

WordPress, Snoopy und fsockopen

Folgende Fehlermeldung weißt darauf hin das a) twitter nicht erreichbar ist und b) du wahrscheinlich ein Problem hast.

PHP Warning:  fsockopen() [<a href='function.fsockopen'>function.fsockopen</a>]: unable to connect to
twitter.com:80 (Connection timed out) in /var/www/html/wp-includes/class-snoopy.php on line 1142

Des Problems Lösung:

Die Snoopy Klasse die den Fehler geworfen hat wird von WP und auch diversen WP-Plugins genutzt um Fremd-Content anderer Seiten zu laden.  Aber WordPress “sollte” es nicht Abschießen. “Sollte” weil fp_sock eine blockierende Funktion ist (d.h. beim Aufruf der Funktion wird gewartet bis sie fertig ist bevor was anderes gemacht wird), ich nirgends den Aufruf zum “entblockieren” finde und deshalb davon ausgehe das die standard Wartezeit von 30 Sekunden (Timeoutwert von Snoopy) gewartet wird bevor es mit der Ausführung der Seite weitergeht.

Wie es der Zufall will war natürlich die “Execution Time” eines Skriptes von PHP Seite aus auf 30 Sekunden beschränkt. Jetzt braucht WordPress geschätzte 1-2 Sekunden bis es an der Stelle anlangte, ruft Twitter auf, wartet 30 Sekunden weil Twitter tot ist, und will dann weitermachen mit dem Ausliefern der Seite.

Ein wenig Mathe 1,5s+30s > 30s => Skript bricht ab, weiße Seite.

Lösung: Execution Time in PHP hochsetzen, oder in class-snoopy.php den Standardwartewert runtersetzen.

Noch keine Kommentare»

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Log Out / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Log Out / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Log Out / Ändern )

Verbinde mit %s

Follow

Get every new post delivered to your Inbox.