Skip to content

Alles für WordPress, Webentwicklung — und mehr

⚙️ So beheben Sie den Fehler "The uploaded file exceeds the upload_max_filesize directive" in der php.ini

⚙️ So beheben Sie den Fehler "The uploaded file exceeds the upload_max_filesize directive" in der php.ini

Sie laden ein Theme, ein Plugin oder ein Bild in die WordPress-Mediathek hoch und sehen eine rote Zeile: „The uploaded file exceeds the upload_max_filesize directive in php.ini." Die Datei ist 10 Megabyte groß, und WordPress akzeptiert sie nicht. Eine vertraute Situation für jeden, der eine Website betreut.

Das Problem liegt nicht an WordPress oder Ihrer Datei. Hosting-Anbieter begrenzen die Upload-Dateigrößen auf PHP-Ebene, und das standardmäßige 2-Megabyte-Limit hat sich seit Jahren nicht geändert. Sie können es in fünf Minuten mit einer der fünf folgenden Methoden erhöhen, von der einfachsten bis zur fortgeschrittensten.

💡 Kurzer Überblick:

  • Erhöhen Sie das Limit über die wp-config.php mit einem einzigen ini_set-Aufruf, funktioniert bei den meisten Hostern
  • Ändern Sie die Einstellungen in cPanel über den MultiPHP INI Editor, sofern Ihr Hoster cPanel einsetzt
  • Erstellen oder bearbeiten Sie die php.ini per FTP, eine Methode, die unabhängig vom Control Panel funktioniert
  • Fügen Sie Direktiven in die.htaccess ein, wenn Sie keinen Zugriff auf die php.ini haben
  • Als letzte Möglichkeit fügen Sie @ini_set in die functions.php Ihres Child-Themes ein

Woher das upload_max_filesize-Limit stammt

Die Direktive upload_max_filesize befindet sich in der Konfigurationsdatei php.ini, der zentralen PHP-Einstellungsdatei auf Ihrem Server. Sie legt die maximale Größe einer einzelnen hochgeladenen Datei fest. Der Standardwert beträgt 2 Megabyte, was für kleine Bilder ausreicht, aber ein WordPress-Theme oder ein Video passt nicht in dieses Limit.

Zwei weitere Direktiven wirken mit ihr zusammen: post_max_size (maximale Größe einer POST-Anfrage, Standard 8 MB) und memory_limit (dem Skript zur Verfügung stehender Arbeitsspeicher, Standard 128 MB). Alle drei hängen zusammen: Wenn Sie upload_max_filesize erhöhen, stellen Sie sicher, dass post_max_size nicht kleiner als der neue Wert ist, andernfalls bleibt die Beschränkung auf dem vorherigen Niveau.

Sie können die aktuellen Limits direkt im WordPress-Administrationsbereich prüfen: Gehen Sie zu Medien → Neues hinzufügen und sehen Sie auf die Zeile unterhalb des Upload-Bereichs, die die maximale Größe anzeigt. Alternativ installieren Sie das Plugin PHP Info und finden die relevanten Direktiven in der Ausgabe von phpinfo().

1. Limit über die wp-config.php erhöhen

Die schnellste Methode, die bei den meisten Shared-Hosting-Angeboten funktioniert. Die Datei wp-config.php befindet sich im Wurzelverzeichnis der Website und wird geladen, bevor jeglicher WordPress-Code ausgeführt wird, sodass ini_set-Direktiven darin Vorrang haben.

Verbinden Sie sich per FTP-Client mit dem Server (FileZilla, eine kostenlose und zuverlässige Option) oder öffnen Sie den Dateimanager in Ihrem Hosting-Control-Panel. Suchen Sie die wp-config.php im Wurzelverzeichnis (normalerweise public_html):

Code für wp-config.php mit erhöhtem Speicherlimit

Fügen Sie die folgenden Zeilen am Ende der Datei ein, vor dem Kommentar /* That's all, stop editing! */:

1@ini_set('upload_max_filesize', '64M');
2@ini_set('post_max_size', '80M');
3@ini_set('memory_limit', '256M');
4@ini_set('max_execution_time', '300');

Speichern Sie die Datei und laden Sie die Seite der WordPress-Mediathek neu. Das Upload-Limit sollte sich auf 64 Megabyte ändern. Hat sich der Wert nicht geändert, hat der Hosting-Anbieter ini_set blockiert, gehen Sie dann zur nächsten Methode über.

2. Einstellungen über den MultiPHP INI Editor in cPanel ändern

Wenn Ihr Hoster cPanel einsetzt, können Sie mit dem integrierten MultiPHP INI Editor PHP-Einstellungen ändern, ohne Dateien manuell bearbeiten zu müssen. Er wendet die Werte automatisch auf die ausgewählte Website an und überschreibt die Hosting-Standards.

Melden Sie sich bei cPanel an und suchen Sie den Bereich Software → MultiPHP INI Editor:

MultiPHP INI Editor in cPanel mit PHP-Einstellungen

Wählen Sie die gewünschte Website aus dem Dropdown-Menü oben auf der Seite aus. Scrollen Sie nach unten zur Direktive upload_max_filesize und geben Sie den neuen Wert ein (zum Beispiel 64M). Suchen Sie darunter post_max_size und setzen Sie diesen etwas höher, etwa 80M. Klicken Sie auf Apply. Die Änderungen werden sofort wirksam.

Diese Methode ist der ersten vorzuziehen: cPanel handhabt die Syntax automatisch, und die Einstellungen werden nach WordPress-Updates nicht zurückgesetzt.

3. Php.ini per FTP bearbeiten

Wenn Sie keinen Zugriff auf cPanel haben oder Ihr Hoster den MultiPHP INI Editor nicht unterstützt, arbeiten Sie direkt mit der Datei php.ini. Sie steuert alle PHP-Einstellungen, und ihre Änderung ist der zuverlässigste Weg, Limits zu erhöhen.

Verbinden Sie sich per FTP mit dem Server und navigieren Sie zum Wurzelverzeichnis der Website. Suchen Sie die Datei php.ini. Falls sie nicht existiert (eine benutzerspezifische php.ini fehlt bei Shared Hosting oft), erstellen Sie eine neue Textdatei mit diesem Namen:

Inhalt der php.ini-Datei mit upload_max_filesize-Einstellungen

Fügen Sie die folgenden Direktiven in die Datei ein:

1upload_max_filesize = 64M
2post_max_size = 80M
3memory_limit = 256M
4file_uploads = On
5max_execution_time = 300
6max_input_time = 300

Speichern Sie die Datei. Damit die Änderungen wirksam werden, verlangen einige Hosting-Anbieter eine suPHP-Direktive in der .htaccess-Datei. Fügen Sie diesen Block in die .htaccess ein:

1<IfModule mod_suphp.c>
2suPHP_ConfigPath /home/yourusername/public_html
3</IfModule>

Ersetzen Sie yourusername durch den Benutzernamen Ihres Hosting-Accounts. Sollte die Website nach dem Hinzufügen dieses Blocks mit einem Fehler abstürzen, entfernen Sie ihn: Ihr Server läuft mit CGI und benötigt kein suPHP.

Auf lokalen Servern hängt der Pfad zur php.ini von der Plattform ab: XAMPP (Windows): C:\xampp\php\php.ini; MAMP (macOS): /Applications/MAMP/conf/php/php.ini; LAMP (Linux): /etc/php/version/apache2/php.ini. Starten Sie nach der Bearbeitung den Webserver neu.

2. Direktiven in.htaccess hinzufügen

Wenn der Hosting-Provider den Zugriff auf php.ini gesperrt hat und ini_set nicht funktioniert, ist die .htaccess-Datei die letzte Verteidigungslinie auf Serverebene. Sie erlaubt es, PHP-Einstellungen für einen bestimmten Website-Ordner mittels php_value-Direktiven zu setzen.

Verbinden Sie sich per FTP und suchen Sie die .htaccess im Wurzelverzeichnis. Laden Sie eine Sicherungskopie auf Ihren Computer herunter (unbedingt erforderlich!). Fügen Sie dann die folgenden Zeilen am Ende der Datei hinzu:

php_value-Direktiven in der .htaccess-Datei zum Erhöhen des Upload-Limits
1php_value upload_max_filesize 64M
2php_value post_max_size 80M
3php_value memory_limit 256M
4php_value max_execution_time 300
5php_value max_input_time 300

Speichern Sie die .htaccess und aktualisieren Sie die Website. Erscheint statt der Website ein 500 Internal Server Error, läuft Ihr Server mit CGI und die php_value-Direktive in .htaccess wird nicht unterstützt. Löschen Sie die hinzugefügten Zeilen, um die Website wiederherzustellen, und verwenden Sie Methode 3 (Erstellen einer php.ini).

Den 500-Fehler und seine Variante 502 haben wir ausführlich in unserem Leitfaden zur Behebung von WordPress-Serverfehlern behandelt.

3. @Ini_set in der functions.php Ihres Themes hinzufügen

Diese Methode ist für Situationen gedacht, in denen alle vorherigen Methoden nicht verfügbar sind oder Sie die Einstellungen im Theme-Repository behalten möchten. Fügen Sie den Code in die functions.php-Datei Ihres Child-Themes ein, die bei jeder Anfrage ausgeführt wird und Limits im laufenden Betrieb überschreibt.

1@ini_set('upload_max_filesize', '64M');
2@ini_set('post_max_size', '80M');
3@ini_set('memory_limit', '256M');
4@ini_set('max_execution_time', '300');

Platzieren Sie den Code am Ende der functions.php, aber vor dem schließenden ?> (falls vorhanden). Verwenden Sie ein Child-Theme: Bei einem Update des Parent-Themes werden Änderungen in der functions.php des Haupt-Themes zurückgesetzt, während ein Child-Theme Updates ohne Verluste übersteht.

Nachdem Sie den Code hinzugefügt haben, überprüfen Sie das Limit in der WordPress-Mediathek. Beachten Sie, dass auf manchen Hosts ini_set für upload_max_filesize auf PHP-Ebene blockiert ist (die PHP_INI_SYSTEM-Direktive erlaubt keine Änderung des Wertes zur Laufzeit). In diesem Fall wird @ini_set stillschweigend ignoriert und Sie benötigen Methode 3 oder 4.

Warum sich das Limit nicht geändert hat: Diagnose

Alle Anweisungen befolgt, aber das Limit blieb gleich? Gehen Sie diese Checkliste durch:

  • post_max_size ist kleiner als das neue upload_max_filesize. Dies ist die häufigste Ursache: post_max_size muss mindestens gleich, besser 20-30% größer als upload_max_filesize sein: Die PHP-Dokumentation verlangt ausdrücklich post_max_sizeupload_max_filesize. Stapel-Uploads mehrerer Dateien und Formularfelder zählen zu post_max_size.
  • Die Datei wurde im falschen Ordner erstellt. PHP sucht nach php.ini im Skriptverzeichnis und geht dann den Verzeichnisbaum bis zur Serverwurzel hinauf. Platzieren Sie php.ini im Wurzelverzeichnis der Website (public_html), nicht in einem Unterordner.
  • Der PHP-Cache (OPcache) speichert die alte Konfiguration. Manche Server cachen php.ini. Starten Sie PHP über das Hosting-Panel neu oder warten Sie 5-10 Minuten, bis der Cache ungültig wird.
  • Der Server läuft mit CGI/FastCGI und ignoriert .htaccess. Ändern Sie Ihren Ansatz: Verwenden Sie php.ini (Methode 3) oder user.ini für FastCGI.
  • Der Hosting-Provider hat das Limit fest vorgegeben. Bei extrem günstigen Tarifen ist das Upload-Limit fixiert und kann durch keine Methode außer einem Tarif-Upgrade geändert werden.

Wenn keiner dieser Punkte geholfen hat, kontaktieren Sie den Hosting-Support. Nennen Sie Ihre Domain, die von Ihnen verwendete Methode zur Änderung des Limits und bitten Sie um Prüfung, ob das Überschreiben von upload_max_filesize in Ihrem Tarif erlaubt ist.

Video-Tutorial

Sehen Sie sich den schrittweisen Prozess zur Behebung dieses Fehlers von der Diagnose bis zur abschließenden Überprüfung in diesem Video an:

⁉️🤔 Häufig gestellte Fragen

Welchen Wert sollte ich für upload_max_filesize wählen?

Für die meisten Websites sind 64 MB ausreichend, das deckt Uploads von Themes, Plugins und hochauflösenden Bildern ab. Wenn Sie über das Admin-Panel mit Videodateien oder großen ZIP-Archiven arbeiten, setzen Sie den Wert auf 128-256 MB. Jagen Sie nicht ohne Grund Gigabyte-Werten hinterher: Je höher das Limit, desto mehr Arbeitsspeicher reserviert der Server für jede Upload-Anfrage.

Kann ich eine Datei unter Umgehung des Limits hochladen?

Ja, per FTP. Ein FTP-Client verbindet sich direkt mit dem Server und läuft nicht über den PHP-Handler, sodass die upload_max_filesize-Beschränkungen für ihn nicht gelten. Laden Sie die Datei per FTP nach wp-content/uploads hoch und registrieren Sie sie anschließend mit dem Plugin „Add From Server" in der WordPress-Mediathek.

Was ist der Unterschied zwischen upload_max_filesize und post_max_size?

upload_max_filesize ist die maximale Größe einer einzelnen Datei bei einem Upload. post_max_size ist die Gesamtgröße der gesamten POST-Anfrage, einschließlich aller Dateien, Formularfelder und Service-Header. Wenn Sie drei Dateien zu je 20 MB hochladen, muss upload_max_filesize ≥ 20 MB sein, während post_max_size ≥ 60 MB zuzüglich eines Puffers für das Formular betragen muss. Deshalb wird post_max_size immer höher angesetzt als upload_max_filesize.

Warum werden Limits nach WordPress-Updates zurückgesetzt?

WordPress fasst PHP-Servereinstellungen bei Updates nicht an. Wenn Sie jedoch wp-config.php oder die functions.php des Haupt-Themes bearbeitet haben, können Core- oder Theme-Updates diese Dateien überschrieben haben. Hinterlegen Sie benutzerdefinierte PHP-Einstellungen immer in der php.ini, im cPanel MultiPHP INI Editor oder in einem Child-Theme: Diese Orte sind von Updates nicht betroffen.

Muss ich den Server nach Änderungen an der php.ini neu starten?

Bei Shared Hosting und cPanel nicht: Die Änderungen werden automatisch innerhalb weniger Minuten wirksam. Bei VPS und dedizierten Servern mit PHP-FPM starten Sie den Dienst neu: sudo systemctl restart php-fpm (oder php8.3-fpm, je nach Version). Apache mit mod_php übernimmt Änderungen in der Regel ohne Neustart.

Was tun, wenn sich das Limit dennoch nicht erhöhen lässt

Die fünf oben genannten Methoden decken praktisch jedes Hosting-Szenario ab. Von der einfachen wp-config.php bis zur functions.php des Child-Themes haben Sie die gesamte Kette durchlaufen. Wenn nach gewissenhafter Ausführung jedes Schrittes und Durchführung der Diagnose das Limit unverändert bleibt, liegt die Ursache in einer strikten Richtlinie des Hosting-Anbieters, und Sie können sie nicht umgehen, ohne den Tarif oder den Anbieter zu wechseln.

Kontaktieren Sie den Support und fragen Sie direkt, ob das Überschreiben von upload_max_filesize in Ihrem Tarif erlaubt ist. Ein „Nein" ist ein Grund, über einen Umzug auf einen VPS oder einen flexibleren Shared-Tarif nachzudenken, bei dem Sie die PHP-Einstellungen ohne Rücksicht auf Server-Nachbarn kontrollieren. Laden Sie große Dateien in der Zwischenzeit per FTP hoch: Dort gibt es keine Größenbeschränkungen, und „Add From Server" bindet sie in die Mediathek ein.