Zum Inhalt springen
Konfiguration

WordPress Upload Limit erhöhen: so klappt es bei jedem Host

Prüfe dein aktuelles WordPress Upload-Limit und erhöhe es an der richtigen Stelle für deinen Host: php.ini, .user.ini, .htaccess, cPanel, Nginx oder Cloudflare.

Veröffentlicht Aktualisiert

Um das Upload-Limit in WordPress zu erhöhen, hebst du zwei PHP-Einstellungen an, upload_max_filesize und post_max_size, und zwar in der Konfigurationsdatei, die dein Host tatsächlich liest. Das ist php.ini auf einem Server, den du selbst verwaltest, .user.ini bei den meisten Shared Hosts mit PHP-FPM oder FastCGI, .htaccess nur dann, wenn Apache PHP als Modul ausführt, oder der MultiPHP INI Editor in cPanel. Läuft dein Server mit Nginx, erhöhe zusätzlich client_max_body_size. Eine Änderung in wp-config.php ändert das Upload-Limit nicht.

Das WordPress-Tool für die maximale Upload-Größe macht aus einer Zielgröße passende Werte für php.ini (oder .user.ini), .htaccess und wp-config.php. So kannst du sie einfügen, statt sie von Hand zu tippen.

Schritt 1: Dein aktuelles Upload-Limit prüfen

Bevor du etwas änderst, finde heraus, wie hoch das Limit gerade ist und welche Einstellung es bestimmt.

  • Medien > Neue Mediendatei hinzufügen. Der Upload-Bildschirm zeigt die maximale Dateigröße für Uploads. Das ist die Zahl, die du erhöhen willst.
  • Werkzeuge > Website-Zustand > Bericht. Klappe Medienverarbeitung auf. Die Dokumentation zum Website-Zustand beschreibt, was dort steht: die maximal erlaubte Größe der Post-Daten, die maximale Größe einer hochgeladenen Datei und die maximal wirksame Dateigröße, also der kleinere der beiden Werte. Im Abschnitt Server findest du weitere PHP-Werte.
WordPress-Seite Upload Media mit der Zeile Maximum upload file size: 2 GB unter dem Upload-Bereich
Hier steht das Limit auf der Upload-Seite, unter dem Upload-Bereich. Die 2 GB sind der Wert unseres Testservers, viele Hoster setzen deutlich weniger.
WordPress Site Health Info, Abschnitt Media Handling, mit den Zeilen max size of post data allowed, max size of an uploaded file und max effective file size
Werkzeuge > Website-Zustand > Bericht > Medienverarbeitung auf unserer Testseite, mit den Limits für Post-Daten, hochgeladene Dateien und dem effektiven Limit in eigenen Zeilen.

WordPress berechnet sein Limit in wp_max_upload_size(). Die Funktion liest upload_max_filesize und post_max_size aus PHP und nimmt den kleineren Wert. Steht einer davon auf 64M und der andere auf 8M, liegt dein Limit bei 8M.

Schritt 2: Wissen, welche Einstellungen zählen

EinstellungWas sie begrenztPHP-StandardWo sie geändert werden kann
upload_max_filesizeDie größte einzelne hochgeladene Datei2Mphp.ini, .user.ini, .htaccess, httpd.conf
post_max_sizeDie gesamte POST-Anfrage, inklusive Datei8Mphp.ini, .user.ini, .htaccess, httpd.conf
memory_limitSpeicher, den PHP während der Ausführung nutzen darf128MÜberall, auch in wp-config.php
max_execution_timeSekunden, die ein Skript laufen darf30Überall, auch in wp-config.php
client_max_body_size (Nginx)Der Anfrage-Body, den Nginx annimmt1mNur in der Nginx-Konfiguration

Die PHP-Standards und Änderungsmodi stammen aus der Liste der php.ini-Direktiven, der Nginx-Standard aus der Dokumentation des Nginx-Core-Moduls. Die meisten Hosts setzen höhere Werte als die PHP-Standards, deshalb liest du deine echten Zahlen im Website-Zustand ab.

upload_max_filesize und post_max_size sind laut PHP INI_PERDIR-Einstellungen: Sie „können in php.ini, .htaccess, httpd.conf oder .user.ini gesetzt werden“ und nirgendwo sonst. memory_limit begrenzt nicht die Dateigröße, aber WordPress braucht Speicher, um verkleinerte Kopien großer Bilder zu erstellen. Ein großer Upload kann deshalb nach dem Ankommen trotzdem mit einem Fehler wegen erschöpftem Speicher scheitern.

Schritt 3: Das Limit an der richtigen Stelle für deinen Host erhöhen

Deine UmgebungWo du es einstellstHinweise
VPS oder dedizierter ServerDie php.ini, die dein PHP tatsächlich lädtDanach PHP-FPM oder Apache neu starten
Shared Host mit PHP-FPM oder FastCGI.user.ini im WordPress-HauptverzeichnisKann bis zu 5 Minuten dauern, bis es greift
Apache mit PHP als Modul (mod_php).htaccess mit php_valueFührt unter PHP-FPM oder FastCGI zu einem 500-Fehler
cPanel-HostSoftware > MultiPHP INI EditorSchreibt php.ini, .user.ini oder .htaccess für dich
Nginx vor PHPclient_max_body_size zusätzlich zu den PHP-WertenSonst gibt Nginx 413 zurück
Managed WordPress HostDas Dashboard oder der Support des HostsViele Hosts begrenzen Uploads auf Plattformebene
Website hinter CloudflareDas eigene Upload-Limit von Cloudflare100 MB in den Tarifen Free und Pro

php.ini (Server, den du selbst verwaltest)

Finde zuerst die geladene Datei. Erstelle eine temporäre Datei mit dem Inhalt <?php phpinfo();, öffne sie im Browser, lies die Zeile „Loaded Configuration File“ und lösche die Datei danach wieder. Bearbeite dann diese php.ini:

upload_max_filesize = 128M
post_max_size = 130M
max_execution_time = 300

Starte PHP anschließend neu, damit es die Änderung einliest. Bei PHP-FPM enthält der Dienstname die Version, zum Beispiel sudo systemctl restart php8.3-fpm unter Debian oder Ubuntu. Bei mod_php startest du Apache neu.

.user.ini (die meisten Shared Hosts)

PHP liest .user.ini-Dateien nur, wenn es als CGI oder FastCGI läuft, und dazu gehört PHP-FPM. Erstelle oder bearbeite .user.ini im Ordner, in dem wp-config.php liegt:

upload_max_filesize = 128M
post_max_size = 130M

PHP liest diese Dateien alle user_ini.cache_ttl Sekunden neu ein, standardmäßig alle 300. Warte fünf Minuten, bevor du entscheidest, dass es nicht geklappt hat, oder starte PHP-FPM neu, wenn du kannst.

.htaccess (nur Apache mit mod_php)

php_value upload_max_filesize 128M
php_value post_max_size 130M

Das PHP-Handbuch beschreibt diese Direktiven für PHP als Apache-Modul. Zeigt deine Website direkt nach dem Speichern einen 500 Internal Server Error, läuft PHP als FastCGI oder PHP-FPM. Entferne die Zeilen wieder und nutze stattdessen .user.ini.

cPanel MultiPHP INI Editor

Öffne in cPanel Software > MultiPHP INI Editor, wähle deine Domain und ändere die Werte im Basic Mode. Laut Dokumentation von cPanel speichert der Basic Mode in die Dateien php.ini, .user.ini und .htaccess, jeweils dort, wo die Einstellung unterstützt wird. Du musst also nicht wissen, welche Datei dein Server nutzt.

Nginx

Nginx prüft die Größe der Anfrage, bevor PHP sie sieht. Ist eine Anfrage größer als client_max_body_size, gibt Nginx 413 Request Entity Too Large zurück. Der Standard ist 1m. Trage in deinem server-Block einen Wert ein, der mindestens so groß ist wie post_max_size:

client_max_body_size 130M;

Teste und lade neu mit sudo nginx -t && sudo systemctl reload nginx. Bei Apache ist die vergleichbare Einstellung LimitRequestBody, die auf normalem WordPress-Hosting selten geändert werden muss.

Managed Hosts und Cloudflare

Manche Managed WordPress Hosts ignorieren deine php.ini oder .user.ini und legen das Limit für die ganze Plattform fest. Zeigt der Website-Zustand nach deiner Änderung immer noch die alte Zahl, frag deinen Host nach dem Maximum und ob er es erhöhen kann.

Läuft die Website über Cloudflare, hat Cloudflare ein eigenes Limit. Die Cache-Dokumentation nennt als maximale Upload-Größe 100 MB in den Tarifen Free und Pro, 200 MB in Business und bis zu 5 GB in Enterprise. Keine PHP-Einstellung kommt daran vorbei.

Warum wp-config.php nicht funktioniert

Viele Artikel empfehlen, das hier in wp-config.php einzufügen:

@ini_set( 'upload_max_filesize', '128M' );
@ini_set( 'post_max_size', '130M' );

Beide Einstellungen sind INI_PERDIR, und laut PHP-Dokumentation dürfen Einstellungen dieses Modus nicht mit ini_set() gesetzt werden. Das @ versteckt den Fehlschlag, die Zeilen wirken also harmlos und ändern nichts. Was wp-config.php ändern kann, ist der Speicher, denn memory_limit lässt sich überall setzen:

define( 'WP_MEMORY_LIMIT', '256M' );

Das hilft, wenn große Bilder bei der Verarbeitung scheitern. Die maximale Upload-Dateigröße ändert es nicht.

Schritt 4: Die Änderung prüfen

Lade Medien > Neue Mediendatei hinzufügen neu und prüfe, ob die maximale Dateigröße für Uploads deinen neuen Wert zeigt. Wenn nicht:

  • Prüfe, ob post_max_size mindestens so groß ist wie upload_max_filesize. WordPress nimmt den kleineren Wert.
  • Stelle sicher, dass du die Datei bearbeitet hast, die PHP tatsächlich lädt. Eine php.ini im falschen Ordner wird ignoriert.
  • Warte bei einer .user.ini-Änderung fünf Minuten oder starte PHP-FPM neu.
  • Hat sich die Zahl in WordPress geändert, aber Uploads scheitern weiter mit 413, liegt die Sperre bei Nginx, beim Proxy deines Hosts oder bei Cloudflare.
  • Kommt der Upload in WordPress an und scheitert dann mit „HTTP-Fehler“, ist die Größe nicht mehr das Problem. Unser Ratgeber zum WordPress HTTP-Fehler beim Bild-Upload erklärt die üblichen Ursachen.

Wie hoch solltest du es setzen?

Setze es auf die größte Datei, die du wirklich hochladen musst, mit etwas Puffer, und halte post_max_size etwas über upload_max_filesize. Große Uploads dauern auch länger, erhöhe also max_execution_time, wenn große Dateien bei langsamen Verbindungen abbrechen. Für sehr große Dateien wie lange Videos oder Backup-Archive ist ein Upload per SFTP oder mit einem Plugin für stückweise Uploads meist zuverlässiger als ein riesiger Browser-Upload, und ein Cloudflare-Tariflimit schließt den Weg über den Browser vielleicht ohnehin aus.

Wenn du dein Ziel kennst, schreibt dir das Tool für die maximale Upload-Größe die passenden PHP-Zeilen. Die Nginx-Zeile aus diesem Ratgeber fügst du selbst hinzu, wenn dein Server mit Nginx läuft.

FAQ

Fragen

Wie prüfe ich mein aktuelles Upload-Limit in WordPress?

Geh zu Medien > Neue Mediendatei hinzufügen. Der Upload-Bildschirm zeigt die maximale Dateigröße für Uploads. Für die Details dahinter öffne Werkzeuge > Website-Zustand > Bericht und klappe Medienverarbeitung auf. Dort stehen die maximale Größe einer hochgeladenen Datei, die maximale Größe der Post-Daten und die maximal wirksame Dateigröße, also der kleinere der beiden Werte.

Warum meldet WordPress, dass die hochgeladene Datei die upload_max_filesize-Direktive in php.ini überschreitet?

Die Datei ist größer als die PHP-Einstellung upload_max_filesize. WordPress legt dieses Limit nicht fest, es liest es aus PHP. Erhöhe upload_max_filesize und post_max_size gemeinsam in php.ini, .user.ini oder, bei Apache mit mod_php, in .htaccess. Der PHP-Standard für upload_max_filesize liegt bei nur 2M, die meisten Hosts setzen aber einen höheren Wert.

Kann ich das Upload-Limit über wp-config.php erhöhen?

Nein. upload_max_filesize und post_max_size sind PHP_INI_PERDIR-Einstellungen, die PHP nur aus php.ini, .htaccess, httpd.conf oder .user.ini übernimmt. Eine ini_set()-Zeile in wp-config.php läuft ohne Fehler durch und ändert nichts. Über wp-config.php lässt sich das Speicherlimit von WordPress erhöhen, aber der Speicher begrenzt nicht die Dateigröße.

Warum bekomme ich nach dem Erhöhen der PHP-Limits immer noch 413 Request Entity Too Large?

Etwas vor PHP lehnt die Anfrage ab. Bei Nginx ist das client_max_body_size, dessen Standard bei 1m liegt und das beim Überschreiten einen 413-Fehler zurückgibt. Erhöhe den Wert im server-Block und lade Nginx neu. Läuft deine Website über Cloudflare, kann auch das Upload-Limit deines Cloudflare-Tarifs die Anfrage stoppen, bevor sie deinen Server erreicht.

Muss post_max_size größer sein als upload_max_filesize?

Es sollte mindestens genauso groß sein, etwas größer ist sicherer. Die Datei wird zusammen mit anderen Formulardaten in einer POST-Anfrage gesendet, deshalb zählt die gesamte Anfrage gegen post_max_size. WordPress nutzt den kleineren der beiden Werte als Upload-Limit. Erhöhst du nur upload_max_filesize, bleibt das Limit also, wo es war.