So ändern Sie die maximale Upload-Dateigröße in PHP: Eine vollständige Anleitung

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Einleitung: „Datei zu groß“ – ein bekanntes Problem?

\n\n

Haben Sie schon einmal versucht, ein hochauflösendes Foto, ein Video für Ihren Blog oder ein ZIP-Archiv mit Dokumenten auf eine Website hochzuladen und plötzlich den gnadenlosen Fehler gesehen: „Maximale Upload-Dateigröße überschritten“? Wenn ja, sind Sie nicht allein. Auf Stack Overflow hat die Frage „Change the maximum upload file size“ Zehntausende von Aufrufen gesammelt, was bedeutet, dass Hunderttausende von Entwicklern (vom Anfänger bis zum Profi) gegen diese Wand gelaufen sind.

\n\n

Auf dem Bildungsportal PythonLib lehren wir nicht nur, Code zu kopieren, sondern zu verstehen, wie alles von innen funktioniert. Heute werden wir anhand von anschaulichen, lebendigen Beispielen erklären, wie man das Upload-Limit in PHP ändert. Sie erfahren, wo die Einstellungen versteckt sind, warum sie nicht immer funktionieren und wie Sie die häufigsten Fallstricke umgehen. Los geht's!

\n\n

Warum erlaubt PHP keine großen Dateien?

\n\n

Standardmäßig ist PHP ein eher bescheidener Geselle. Es erlaubt das Hochladen von Dateien mit einer Größe von nur 2 Megabyte (und in einigen älteren Versionen sogar noch weniger). Dies dient der Sicherheit: Stellen Sie sich vor, ein Angreifer würde eine Gigabyte-große Datei auf Ihren Server laden und die Website lahmlegen. Für legitime Aufgaben (z. B. das Hochladen eines Portfolios oder eines Video-Tutorials) ist das jedoch katastrophal wenig.

\n\n

Woher kommt das Limit? Die Antwort liegt in drei Hauptdirektiven der PHP-Konfiguration:

\n\n
    \n
  • upload_max_filesize – die maximale Größe einer einzelnen hochgeladenen Datei.
  • \n
  • post_max_size – die maximale Größe aller per POST gesendeten Daten (einschließlich Dateien und Textfelder des Formulars).
  • \n
  • max_execution_time – die Zeit, die PHP für die Ausführung des Skripts aufwenden darf (das Hochladen einer großen Datei kann Minuten dauern).
  • \n
\n\n

Wenn Sie nur upload_max_filesize erhöhen, aber post_max_size vergessen, wird der Upload trotzdem mit einem Fehler fehlschlagen. Das ist, als würde man versuchen, einen Elefanten in einen Kofferraum zu stopfen, der kleiner ist als der Elefant selbst. Oder wenn Sie eine große Kiste (Datei) haben, aber die Tür des Briefkastens (post_max_size) zu schmal ist.

\n\n

Wo leben die PHP-Einstellungen? Drei Wege zum Erfolg

\n\n

Sie haben drei Möglichkeiten, die maximale Upload-Dateigröße zu ändern. Welche Sie wählen, hängt von Ihrem Hosting und Ihrer Zugriffsebene ab. Lassen Sie uns jede einzeln durchgehen.

\n\n

Methode 1: Bearbeiten der php.ini (der Goldstandard)

\n\n

Die Datei php.ini ist die zentrale „Schaltzentrale“ von PHP. Wenn Sie Zugriff auf den Server haben (VPS, dedizierter Server oder lokaler Computer), ist dies die zuverlässigste Methode.

\n\n

Finden Sie Ihre php.ini. Normalerweise befindet sie sich unter:

\n
    \n
  • Linux: /etc/php/8.x/apache2/php.ini oder /etc/php/8.x/cli/php.ini
  • \n
  • Windows: C:\\xampp\\php\\php.ini (für XAMPP) oder C:\\wamp64\\bin\\php\\php8.x\\php.ini
  • \n
\n\n

Öffnen Sie die Datei und suchen Sie (oder fügen Sie hinzu) die folgenden Zeilen:

\n\n
; Maximale Größe einer einzelnen Datei (jetzt 50 MB)\nupload_max_filesize = 50M\n\n; Maximale Größe aller POST-Daten (muss größer oder gleich upload_max_filesize sein)\npost_max_size = 64M\n\n; Maximale Ausführungszeit des Skripts in Sekunden (für große Dateien auf 300 erhöhen)\nmax_execution_time = 300\n\n; Maximale Zeit für den Datenempfang (empfohlen mindestens 5 Minuten)\nmax_input_time = 300\n\n; Speicher pro Skript (bei großen Dateien auf 128M oder 256M erhöhen)\nmemory_limit = 128M
\n\n

Nach den Änderungen müssen Sie den Webserver neu starten:

\n
sudo systemctl restart apache2   # für Apache\nsudo systemctl restart nginx     # für Nginx
\n\n

Fertig! Ihre Website kann jetzt Dateien bis zu 50 MB empfangen. Aber denken Sie daran: post_max_size sollte immer ein paar Megabyte größer sein als upload_max_filesize, damit genug Platz für die Header des Formulars bleibt.

\n\n

Methode 2: Die Magie von .htaccess (für Shared

Blogs

Buchempfehlungen