Wie ich mich selbst hackte

Gerade eben ist es passiert… ich habe mich tatsächlich selbst gehackt :P

Ich arbeitete an einer WordPress-Multisite-Installation. Da gab es einige Probleme mit den Plugins, weil die PHP-Version geupdatet worden war.

Zu diesem Zweck wollte ich das Debugging aktivieren und bearbeitete die wp-config.php.

Danach funktionierte leider nichts mehr so richtig. Eine Seite lief problemlos, doch meine Hauptseite war zerschossen und beschwerte sich über fehlende Tabellen in meiner Datenbank. Genau genommen solche Tabellen mit den Namen wp_1_… . Ich dachte daran, dass vielleicht ein neues Plugin die Tabelle zerschossen hatte. Oder hatte sich jemand Zugriff auf die Datenbank verschafft und daran herumgespielt?

Sicherheitshalber änderte ich das Passwort (und noch einige weitere Passwörter). Ich spielte das Datenbank-Backup ein, das praktischerweise täglich automatisch gemacht wird. Sollte also kein Problem sein. Ein wenig Arbeit verloren. Was solls. Und nach dem Backup…

…passierte nichts.

Das Fehlerbild blieb genau das gleiche. Ich öffnete den Datenbank-Dump und stellte fest, dass das Backup die von WordPress geforderten Tabellen dort gar nicht enthalten waren. Genau die, die WordPress als fehlend angezeigt hatte. Ich verfluchte das Backup-Plugin und suchte weiter.

Darauf, dass es gar nicht an der Datenbank lag, kam ich noch nicht. Erst als ich beim Stöbern im phpMyAdmin die Tabelle wp_posts entdeckte, die auch für die anderen Seiten als wp_x_posts vorhanden ist, ahnte ich, dass es sich dabei um eine meiner gesuchten Tabellen handelte. Doch wieso hatte die den falschen Namen?

Nach kurzem googlen fand ich die Lösung im WordPress-Support-Forum: Ich hatte versehentlich eine entscheidende Zeile

define('MULTISITE', true);

aus meiner wp-config.php gelöscht und das hatte den merkwürdigen Fehler erzeugt. Ich fügte die Zeile wieder ein, speicherte, und alles funktionierte.

Fazit. Ich hätte mir natürlich gewünscht, dass WordPress erkennt, welcher Fehler vorliegt. Andererseits kann man aber auch nicht verlangen, dass die Software jeden Konfigurationsfehler abfängt.