Über den Author / Internet / WordPress Pings und Trackbacks funktionieren nicht mehr?

WordPress Pings und Trackbacks funktionieren nicht mehr?

~2 Min. Lesezeit

Eine Kollegin hatte ein Problem, das die Pings und Trackbacks plötzlich nicht mehr funktionierten. Es halfen keine erweiterten Timeouts in den Scripts.

Also ging ich dran den Cron von WordPress zu debuggen und arbeitete mich systematisch durch den ganzen Code durch. Nach Tagen suchen, war die Lösung einfach.

Ein manueller Aufruf von der wp-cron.php Datei bringt nichts, da der Cron dann schon ausgeführt wurde. Daher musste ich die Cron zwingen erstens Fehler auszugeben und 2tens auch den Cron auszuführen.

Dazu fügt man folgende 2 Zeilen in den Code ein (siehe Kommentar):

if ( !defined('ABSPATH') ) {
	/** Setup WordPress environment */
	require_once('./wp-load.php');
}

/* Error Ausgabe und Cron hinzufügen, damit es ausgeführt wird */
error_reporting(E_ALL ^ E_NOTICE);
wp_schedule_single_event(time(), 'do_pings');


if ( false === $crons = _get_cron_array() )
	die();

Anschliessend kann man per Browser das File direkt aufrufen und schauen, ob der Cron durchläuft. Man sollte nicht erschrecken, wenn die Webseite 1-2 Minuten ladet, ohne etwas anzuzeigen, dann läuft sie.

Falls die Rückmeldung eine leere Seite ist, lief der Cron sauber durch.
Es gibt glaub ich 2 Fehler die hier auftreten könnten. Zum Ersten kann es kommen, wenn der PHP Prozess nicht genug Speicher hat, um die Aktionen auszuführen. Dies ist eines der Hauptprobleme auf Shared Hostings oder virtuellen Servern.

Die Fehlermeldung dazu sieht wie folgt aus:

Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 45737284 bytes)

Bei diesem Problem kann man versuchen die PHP Einstellung zu verändern in dem man am Anfang der Datei die Zeile einfügt:

ini_set("memory_limit","150M");

Dies bewirkt, dass die Einstellung im php.ini des Hostinganbieter übersteuert wird und so 150MB zur Verfügung gestellt werden. Der Wert lässt sich natürlich auch anpassen, rechnet einfach die Werte in der Fehlermeldung zusammen und addiert 50 MB. Unbedingt nur M angeben in der Einstellung und nicht MB 😉
Ein Problem wo ihr haben könntet ist, der Anbieter vom Hosting kann die Änderung blockieren und falls dies so ist, seit ihr aufgeschmissen.

Auch kann es passieren, dass das Skript einfach lange läuft und der Provider die Laufzeit eines einzelnen Skriptes eingeschränkt hat.
Die Fehlermeldung wäre dazu:

Fatal error: Maximum execution time exceeded

Dies könnt ihr sehr einfach beheben indem ihr die Ausführzeit auf 5 Minuten setzt mit folgendem Befehl:

set_time_limit(300);

Diese Einstellung zeigt nur Wirkung wenn der Hoster kein Safe Mode verwendet. Falls doch, seit ihr auch hier aufgeschmissen.

Selbstverständlich müsst ihr am Ende noch die Debuggingzeilen aus dem wp-cron.php wieder entfernen.

Unterdessen habe ich auch ein Problem analysiert, wo die Trackbacks auf der eigenen Seite nicht ankommen und dazu eine kleines Hilfetool veröffentlicht. Der Artikel dazu befindet sich hier: WordPress Pings und Trackbacks kommen nicht an?

About Stefan

avatar
Ein männlicher IT Nerd, durchstöbert das Web nach speziellen Gadgets, unentbehrlicher Software und Alles was man im IT Sektor nicht verpassen darf.Immer hilfsbereit wenn Probleme zu lösen sind oder das Unmögliche umgesetzt werden sollte.

Weitere interessante Artikel

Bild-20160218-001

PHP Trojaner (Teil 3: Spamsender Infektion)

~1 Min. LesezeitSpam ist ein grosses Problem der heutigen Zeit, doch wer verschickt Spam und …

Bild-20160218-001

PHP Trojaner (Teil 2: Uploader Infektion)

~1 Min. LesezeitPHP Trojaner sind beliebt, denn oft werden solche Infektionen übersehen und überstehen Jahre …

25 Kommentare

  1. avatar

    Supi, das sieht ja auch ziemlich einfach aus und ist auf jeden Fall hilfreich 🙂
    Habe meinen Artikel gerade mit einem Update und Link zu Deinem Artikel versehen, so dass die Interessierten das auch bei mir gleich mitbekommen. Dein TB kam übrigens 3x an 😉

  2. avatar

    Danke für diesen hilfreichen Artikel. Da werde ich meinen alten Blogbeitrag über Timeout diesbezüglich ergänzen.

  3. avatar

    HEhe, habe ja im TExt deine URL, dann noch unten 1 Mal und einmal mit /trackback die URL unten angegeben = 3

    Ich hör wieder auf die Trackback URL’s einzugeben *lach*

  4. avatar

    32MB reicht fast nicht. Zwar reicht dies um die HP aufzubauen und auszuliefern, aber nicht für die gesamten Hintergrundaktivitäten die noch ablaufen.

    256MB werden ja nicht jederzeit belegt, sondern nur gelegentlich, je nach dem wie stark frequentiert geschrieben wird. 256MB sollte aber auch einem Webserver kein Problem sein.

  5. avatar

    Hatte benfalls dieses Problem bei meinem WordPress-Blog, dein Tip hat aber Abhilfe geschaffen. Danke dir dafür !
    LG Black Knight

  6. avatar

    Ich bin bei 1&1, nach dem Einbauen des Debug-Codes gab’s bei mir keine Probleme. Wahrscheinlich ist mein Blog zu klein 🙂

  7. avatar

    Vermutlich kein Problem bei den wp-cron. Je nach wo der Fehler auftritt muss man einen anderen Code einbauen in den spezifischen Files. Wo hast du denn Probleme?

  8. avatar

    Hallo,

    danke für den Artikel. Was kann es aber sein, wenn mein Blog einen Pingback bekommt, dieser aber von meinem Blog scheinbar ignoriert wird, obwohl ich Pingbacks in meinen Artikeln zulasse?

    Gruß,
    Jochen

  9. avatar

    Kann mehrere Probleme geben. Der Blog wo dich pingt, macht der dies mit der Artikel URL mit oder ohne /trackback/ Zusatz am Ende?

    Teste das mal. Gibt diverse Blogs die Probleme haben, falls der Trackback Zusatz nicht verwendet wird. Wird dies angegeben kommt aber nicht an bei dir innert rund 1-2 Minuten, dann müsste man dies Debuggen und suchen.

    Wichtig ist auch die Frage, ob der Trackback beim anderen Blog wirklich raus geht. Daher von verschiedenen Blogs dir ein Trackback senden lassen zum testen.

  10. avatar

    Hallo Stefan,

    danke für deine Antwort 🙂

    Mit meinem TestBlog WordPress 3.0.1 , mit dem ich versucht habe, einen Artikel meines realen Fotoblog – auch WordPress 3.0.1 – zu verlinken, habe ich es auf beide Varianten probiert – Pingback (also die URL des realen Artikels nur im Text des TestBlogs erwähnt. Dann aber auch als Trackback in dem dafür vorgesehenen Feld, dann aber die URL mit und ohne trackback/ am Ende. BEIDES kommt im realen Blog nicht an – und ich habe bereits über 20 Versuche gestartet und auch verschiedene Artikel meines realen Blogs angepingt.

    Ich weiß zum Beispiel, dass die Pingbacks meines realen Blogs raus gehen, da ich das an den verlinkten Blogs sehe, da dort dann später mein Eintrag zu finden ist. Mein TestBlog liegt auf dem gleichen Server wie der reale Blog – daher sollte es funktionieren. Des Weiteren habe ich vorsichtshalber mal in meinem Testblog einen intern Pinback gesetzt, der kam an (wobei ich nicht weiß, ob er dafür überhaupt erst mal „raus“ gehen muss).

    Noch weitere Ideen?

    Wer mag, kann mich ja mal „pingbacken“ http://www.fotokulisse.de/content/archiv/pingbacks-funktionieren-nicht/
    oder „trackbacken“ http://www.fotokulisse.de/content/archiv/pingbacks-funktionieren-nicht/trackback/ 😉

  11. avatar

    Nun habe ich noch einen weiteren Test gemacht. Auf einem befreundetetn Blog habe ich einen Artikel geschrieben. Darin per Pingback verlinkt habe ich den TestBlog und meinen realen Blog (beide Blogs liegen auf dem gleichen Webserver). Im TestBlog bekam ich direkt einen Nachricht, das ein „Kommentar“ eingegangen ist, auf meinem realen Blog warte ich immer noch (und ich weiß, dass nichts kommen wird – und ja, eingehende Pingbacks und Trackbacks sind auch dort grundsätzlich erlaubt).

    *verzweifel*

  12. avatar

    Jo, da scheint ein Problem vorzuliegen auf dem Realblog. Vermutlich irgendwo der Speicherverbrauch im Backend zu gross.

    Leider ist es nicht möglich den Fehler auf einem Testblog oder auf einem anderen Server zu reproduzieren, da vieles mit einspielt. Konfig des Apache und all deine Beiträge / Kommentare (sprich DB Grösse).

    Einzig was man machen kann ist eine manuelle Suche und debuggen.
    Ich durfte bei Tanja per FTP auf ihr prod. System und alles debuggen, sie brachte das Vertrauen auf. Ich schick dir eine Mail diesbezüglich.

  13. avatar

    Ach noch was, bei eingehenden Trackbacks kann man in der Datei xmlrpc.php die Einstellung $xmlrpc_logging = ‚1‘; stellen. Dann wird ein logfile geschrieben über die eingehenden Trackbacks und gegebenenfalls sieht man darin warum es nicht geht!

  14. avatar

    Stefan, danke… ich melde mich bei dir!

  15. avatar

    Probleme mit Trackbacks und Pingpacks: Stefans Hilfe war nicht nur rasch und unkompliziert, sondern auch „zielführend“, wie man so schön sagt. Am shared system von 1&1 lag es nicht. Also Permalink-Struktur richtig setzen und auch gleich auf WordPress auf 3.0.1 updaten, da ging alles wunderbar. Ein verzweifelter Laie hat zum Lächeln zurückgefunden – vielen Dank, Stefan!

  16. avatar

    Hey Stefan,

    vielen Dank für diesen Tipp! Seit Monaten die ersten Ping- und Trackbacks, die bei mir wieder rausgehen. 🙂

    Gruß
    Jack

  17. avatar

    Danke für den Artikel,
    es kam mir fast schon so vor, als würde es laufen. Das Problem ist, manchmal klappt es, manchmal nicht, manchmal wenn ich wp-cron.php per Kommandozeile aufrufe, manchmal per Browser. Mir ist auch noch nicht ganz klar, wo die Zeilen (es sind ja doch mehr als zwei) in der wp-cron.php eingefügt werden sollen, vielleicht liegt da das Problem.
    Ich habe überhaupt das Problem, daß mein WordPress Probleme mit zeitlich festgelegten Ausführungen hat, weil geplante Artikel erscheinen auch nicht. Dafür gibt es aber ein Plugin…
    Achja: Fehlermeldungen hatte ich nie, die Limits hab ich sicherheitshalber in der php.ini trotzdem mal nach oben gesetzt.

  18. avatar

    Wenn es gelegentlich geht und gelegentlich nicht, dann hast du ein Cronjob Problem ^^
    Der Cronjob startet die Jobs nicht immer. Wenn die Zeit noch nicht da ist zum Starten, beendet er sich einfach wieder (es lief).

    Kommt die Zeit und er sollte Tasks abarbeiten und startet diese, dann hängt es und die Datei läuft nicht durch 😉

    Limits in der PHP.ini hochsetzen muss nicht unbedingt zu einem Resultat führen. 1 gibt es auf jedem Server rund 3 PHP.ini. Eine für PHP welche über die Shell aufgerufen werden, eine für die Apache2 Laufzeit etc. Dann kann auch noch eine Apache2 Einstellung diese wieder beeinflussen und heruntersetzen. Daher genau anschauen welche Einstellungen wirklich bei der PHP Datei ankommen. Das kannst du per

    <?php phpinfo(); ?>

    auslesen.

    Anderenfalls melde dich einfach auf meine Kontakt Mailadresse, denn ich habe auch ein Plugin gemacht, um diese „Probleme“ zu finden. Da damit aber durch Fehlnutzung auch der Server enorm belastet wird, habe ich dies nicht veröffentlicht.

  19. avatar

    Hallo,
    ich habe eben auch eine Problem mit den ausgehenden Pingbacks und Trackbacks. Bis jetzt hatte ich alle Plugins deaktiviert und das Standard-Theme verwendet. Zudem habe ich den Wert in der cron.php angehoben und mein MemoryLimit war bereits hoch genug. All das hatte nichts bewirkt. Eingehende Trackbacks und Pingbacks funktionieren aber.

    Ich hatte in den letzten zwei Wochen vielerlei Caching-Plugins im Einsatz und vielleicht hängt es damit zusammen, dass die Pingbacks-Funktion gestört wurde. Ich bin durch Google auf diesen Artikel gestossen und finde leider keine Lösung mehr. Kannst du mir vielleicht einen Tipp geben? Danke!
    Update:

    Nun nach dem ich den Cron laufen liess, wurden mir allerhande Fehlermeldungen angezeigt. Erwähnt wurde das Plugin Kaskus Emoticons. Aber sieh da, es wurden dann alle Seiten im Blog gepingt, welche ich in den letzten Tagen via Pingback angesteuer habe und auch externe Pingbacks und Trackbacks gingen raus. Wenn das jetzt so bleibt, wäre ich sehr zufrieden. Ich werde mal einen Testartikel im Blog schreiben und das Ganze noch mal ausgiebig testen.

  20. avatar

    Ich bins nochmals. Also nee, alles beim Alten, nachdem ich die Debugging-Zeilen aus der cron.php entfernte und einen Testartikel geschrieben habe, konnte mein interner Pingback wieder nicht versendet werden. Hat jemand einen Tipp für mich?

  1. Pingback: im Kreuzfeuer

  2. Pingback: WordPress wp-cron Problem gelöst: Memory Limit gesprengt

  3. Pingback: WordPress braucht 256 MB Memory Limit

  4. Pingback: Stück für Stück kehrt hoffentlich wieder Normalität ein | Die Nacht ist vorgedrungen

  5. Pingback: Meine Trackbacks und Pingbacks funktionieren nicht

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

This Blog will give regular Commentators DoFollow Status. Implemented from IT Blögg

eMail-Benachrichtigung bei weiteren Kommentaren.
Auch möglich: Abo ohne Kommentar.