WordPress gehackt: die ersten Stunden
Abschalten, sichern, Passwörter tauschen, dann erst suchen. Die Reihenfolge, die den Befall wirklich beendet, und warum Aufräumen der falsche erste Schritt ist.
WordPress: Wartung und Rettung
Der Bilder-Upload bricht ab, und die Fehlermeldung hilft nicht weiter. Die Ursachen bei Strato und wie du sie der Reihe nach ausschließt.
Eine fertige WordPress-Seite vom Entwicklungssystem auf den Webspace des Kunden kopiert, alles läuft. Dann das erste Bild hochladen, und WordPress meldet, die Datei habe null Byte. Ein Fehler, der einige Stunden kosten kann, wenn man an der falschen Stelle sucht.

Bei so einem Fehler hilft kein Raten. Man geht die Schichten von unten nach oben durch: Rechte, PHP, Speicher, erst ganz zum Schluss das Plugin.
Daniel Weihmann
Der erste Verdacht und meistens der schnellste Ausschluss. Das Verzeichnis /wp-content/uploads muss für den Webserver beschreibbar sein. Üblich sind 755 für Verzeichnisse und 644 für Dateien, wobei manche Hoster eigene Vorgaben haben.
Wenn das Verzeichnis gar nicht existiert, legt WordPress es normalerweise selbst an. Kann es das nicht, ist die Berechtigung der übergeordneten Ebene das Problem.
In meinem Fall lag es genau daran. Auf dem Entwicklungssystem lief eine neuere PHP-Fassung als beim Hoster, und die alte Version kam mit der Bildverarbeitung nicht zurecht. Umgestellt wird das im Kundenbereich des Hosters, bei Strato im Bereich für Webspace und Datenbanken unter der PHP-Version. Die Menünamen ändern sich öfter, such dort nach „PHP-Version“.

Der Punkt gilt bis heute, auch wenn die Versionsnummern andere sind. Läuft die Seite lokal unter PHP 8.3 und beim Hoster unter 7.4, ist das eine Fehlerquelle für alles Mögliche, nicht nur für Uploads. Prüf das immer als Erstes nach einem Umzug.
Wenn Rechte und Version stimmen, sind die Grenzwerte dran. Vier Werte entscheiden darüber, ob eine Datei durchkommt:
upload_max_filesize = 32M
post_max_size = 32M
memory_limit = 256M
max_execution_time = 120
Der häufigste Stolperstein ist nicht die Dateigröße, sondern der Arbeitsspeicher. WordPress erzeugt beim Upload mehrere Zuschnitte in verschiedenen Größen. Ein Foto mit 6.000 Pixeln Kantenlänge braucht dafür deutlich mehr Speicher, als seine Dateigröße vermuten lässt. Reicht der nicht, bricht der Vorgang mitten in der Verarbeitung ab, und übrig bleibt eine Datei mit null Byte. Genau dieses Bild passt zu meinem Fall.
Welche Werte tatsächlich gelten, siehst du in WordPress unter Werkzeuge im Punkt Website-Zustand, dort im Reiter Info.
Dein Bilder-Upload bricht ab?
Schreib mir, welche Fehlermeldung du siehst und bei welchem Hoster die Seite liegt. Ich suche die Ursache und behebe sie, ohne dass du an den Servereinstellungen herumprobieren musst.
Klingt banal, kommt aber vor: Ist das Paket voll, schlägt jeder Upload fehl, oft mit einer wenig hilfreichen Meldung. Ein Blick ins Hosting-Menü klärt das in zehn Sekunden.

Zwei Eigenschaften bringen WordPress zuverlässig aus dem Tritt. Zum einen Bilder im CMYK-Farbraum, wie sie aus dem Druck kommen. Die gehören in den RGB-Farbraum umgewandelt, sonst kann die Bildbibliothek sie nicht verarbeiten. Zum anderen Dateinamen mit Umlauten, Leerzeichen oder Sonderzeichen, die je nach Server unterschiedlich behandelt werden.
Ein Test hilft beim Eingrenzen: Lade ein winziges, einfaches PNG hoch. Klappt das, liegt es am Ausgangsbild. Klappt es nicht, liegt es an der Umgebung.
In meinem Fall trat der Fehler beim Hochladen über ein Slider-Plugin auf. Naheliegend wäre gewesen, dort zu suchen. Tatsächlich lag es an der Umgebung, und das Plugin hat den Fehler nur weitergereicht.
Deshalb der Test, der die meiste Zeit spart: Lade dasselbe Bild über die normale Mediathek hoch. Scheitert es dort ebenfalls, ist das Plugin unschuldig und du kannst dir die Suche im Plugin sparen.
Bei mir schrieb weder das Server-Protokoll etwas Brauchbares, noch legte WordPress trotz aktiviertem Fehlerprotokoll eine debug.log an. In dem Fall lohnt es sich zu prüfen, ob die Einträge in der wp-config.php wirklich greifen:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
Bleibt die Datei aus, fehlen erneut die Schreibrechte, diesmal für /wp-content. Womit man wieder bei Punkt eins wäre, und genau deshalb geht man die Reihe von unten nach oben durch.
Solche Fehlersuchen gehören bei mir zum Alltag. Wenn du gerade selbst danebenstehst und nicht weiterkommst, ruf an, das ist meist in einer halben Stunde eingegrenzt: WordPress: Wartung und Rettung.
WordPress: Wartung und Rettung
Abschalten, sichern, Passwörter tauschen, dann erst suchen. Die Reihenfolge, die den Befall wirklich beendet, und warum Aufräumen der falsche erste Schritt ist.
Updates, Backups und Benutzerverwaltung ohne Klickerei im Backend. Eine Einführung in WP-CLI für alle, die WordPress betreuen.
WordPress erzeugt eine robots.txt selbst, und die ist selten die, die du willst. Wie du sie richtig setzt, ohne dich auszusperren.
Wenn du das nicht selbst umsetzen willst, übernehme ich es. Ein Telefonat reicht, um zu klären, ob sich das für dich lohnt.