WordPress-Upload-Fehler beheben
Beim Versuch, im WordPress-Admin eine große Datei hochzuladen, erhältst du folgenden Upload-Fehler?
Alternativer Fehler: 413 Request Entity Too Large
Unerwartete Antwort des Servers. Die Datei wurde möglicherweise erfolgreich hochgeladen. Schau in der Mediathek nach oder lade die Seite neu.
Wenn dein Webserver mit PHP, nginx-Webserver-Proxy und Parallels Plesk als Verwaltungsoberfläche läuft, hilft Dir folgende Anleitung sehr wahrscheinlich, das Problem zu lösen.
Wenn du selbst keinen Zugriff auf die Plesk- und Serverkonfiguration hast, bitte deinen Webhostingprovider, diese Einstellungen vorzunehmen. Dazu kannst du gerne diese Seite verlinken.
Das Szenario
Wir möchten eine ca. 200 Megabyte große .mp4-Videodatei hochladen. Die Einstellungen für PHP sind ausreichend:
Wenn wir das Video in einen gerade zu erstellenden Blogartikel oder eine Seite hinzufügen möchten, bricht der Upload ohne weitere Hinweise ab. Wir versuchen den Upload also im WordPress über die Medien-Seite bzw. die Mediathek und erhalten diese Meldung:
Unerwartete Antwort des Servers. Die Datei wurde möglicherweise erfolgreich hochgeladen. Schau in der Mediathek nach oder lade die Seite neu.
Ist unser WordPress eine englische Version, lautet die Fehlermeldung:
Unexpected response from the server. The file may have been uploaded successfully. Check in the Media Library or reload the page.
Natürlich sehen wir in der Mediathek bereits, dass die Datei nicht hochgeladen wurde. Was also ist das Problem?
Die Ursache herausfinden
Den Grund für diesen Fehler haben wir recht schnell ausgemacht, denn Plesk bietet uns die Möglichkeit, die Logdateien des Servers bzw. unseres Webs (Webhosting-Pakets) einzusehen. Klicken wir in der Plesk-Verwaltungsoberfläche also auf „Protokolle“, finden wir folgenden (ähnlich lautenden) Fehlereintrag:
nginx verursacht den Fehler! Der Reverse-Proxy meldet, dass wir versucht haben, eine zu große Datenmenge zu senden.
Den WordPress-Upload-Fehler beheben
Mit der Kenntnis über die Ursache beheben wir das Problem. nginx kennt die Konfigurationsdirektive client_max_body_size
, mit der wir prinzipiell sogar im Plesk-Interface im Bereich der Apache/nginx-Konfiguration entsprechenden Wert eintragen könnten. Versuchen wir dies, wird uns Plesk jedoch mitteilen, dass diese Direktive bereits global festgelegt ist und offenbar nicht überschrieben werden kann.
Was nun?
Über die eigene Konfigurationsdatei teilen wir Plesk mit, dass es die erwähnte Direktive nicht global setzen soll:
Plesk ist über die Datei panel.ini
konfigurierbar. Auf Linux-Systemen befindet sie sich im Verzeichnis /usr/local/psa/admin/conf
, wenn bereits Konfigurationsänderungen vorhanden sind.
In dieser Datei weisen wir in der Sektion [webserver]
der Variablen nginxClientMaxBodySize
einen leeren Wert zu, um zu erreichen, dass Plesk für die virtuellen Hosts des Servers eben kein festes, zu sehr begrenztes Limit festlegt.
Wir haben zwei Möglichkeiten, den benötigten Eintrag in der Datei /usr/local/psa/admin/conf/panel.ini
zu ergänzen, und zwar
- per Konsole bzw. SSH-Verbindung zum Server oder
- mit Hilfe der Plesk Erweiterung „Panel.ini Editor“.
Variante 1: Konsole/SSH-Verbindung
Ich gehe an dieser Stelle davon aus, dass du weißt, wie du dich mit deinem Server verbindest und setze voraus, dass du Dateien im Textformat bearbeiten kannst.
Sollte sich im oben erwähnten Pfad noch keine panel.ini-Datei befinden, kannst die mitgelieferte Beispieldatei kopieren und als Vorlage verwenden:
root@srv:~# cp /usr/local/psa/admin/conf/panel.ini.sample /usr/local/psa/admin/conf/panel.ini
Wir ergänzen nun die Konfigurationsdatei mit dem benötigten Eintrag. Das Ende der Konfigurationsdatei sieht dann wie folgt aus:
root@srv:~# tail /usr/local/psa/admin/conf/panel.ini -n 2
[webserver]
nginxClientMaxBodySize =
root@srv:~# _
Variante 2: Panel.ini-Editor-Erweiterung
Eine komfortable Möglichkeit, Plesk mit der panel.ini-Datei dem eigenen Bedarf anzupassen, ist die kostenlose Erweiterung Panel.ini Editor, mit deren Hilfe wir den benötigten Eintrag ebenfalls ergänzen können:
Neue Konfiguration schreiben und Dienst neu starten
Über die Konsole schreiben wir die Konfiguration der Webserverdienste mit folgendem Befehl neu:
root@srv:~# plesk sbin httpdmng --reconfigure-all
Nun starten wir nginx neu, damit die geänderten Konfigurationen eingelesen und verwendet werden:
root@srv:~# service nginx restart
client_max_body_size individuell setzen
Der letzte wichtige Schritt, um den WordPress-Upload-Fehler zu beheben, ist das Anpassen der erlaubten Größe in der nginx-Konfiguration für unsere Website. In diesem Beispiel ist die hochzuladende Datei 200 MB groß, also setzen wir das Limit auf ca. 256 MB (Programmierer lieben 2er-Potenzen).
Im Plesk wählen wir in den Einstellungen der Website den Punkt „Einstellungen für Apache & nginx“:
Auf der erscheinenden Seite ergänzen wir ganz unten im Eingabefeld für zusätzliche nginx-Anweisungen die benötigte Direktive mit unserem gewünschten Limit:
Nun noch ein Klick auf die Schaltfläche „OK“ und nach wenigen Sekunden ist das…
Problem gelöst!
Hat dir dieser Artikel geholfen? Dann freue ich über Feedback!
Auch wenn du nicht gleich die Lösung gefunden hast, ist sie vielleicht näher als du denkst – schreib ebenfalls einen Kommentar! 🙂