Wenn ein Nextcloud-Browser-Upload bei 2 GB abbricht, erhöhen Sie das Limit auf allen Ebenen, die die Anfrage verarbeiten: PHP, Webserver bzw. Reverse-Proxy und jeglicher verwendeter temporärer Speicher. Für ein 5-GB-Ziel benötigt eine typische PHP-FPM- und Nginx-Konfiguration upload_max_filesize = 5Gzusätzlich post_max_size = 6Gausreichend client_max_body_size 5GSpeicherplatz und Zeit für die Übertragung.
Es gibt keine generelle 2-GB-Grenze für Nextcloud. Laut aktuellem Administrationshandbuch beträgt die standardmäßige maximale Uploadgröße 512 MB, während ein Limit unter 2 GB auf 32-Bit-Systemen eine feste Obergrenze darstellt. Ein Server, der genau bei 2 GB stoppt, stößt höchstwahrscheinlich auf ein konfiguriertes Limit oder einen Zwischenwert. Die folgenden Schritte verwenden 5 GB als Beispiel; ersetzen Sie diesen Wert durch die größte Dateigröße, die Sie tatsächlich benötigen.
Stammt die 2-GB-Beschränkung von Nextcloud?
Das sichtbare Limit wird häufig von PHP oder dem Webserver und nicht von einer Nextcloud-Einstellung festgelegt. Das von Nextcloud maximal unterstützte Limit hängt außerdem vom Betriebssystem, Dateisystem, dem Kontokontingent und dem verfügbaren temporären Speicherplatz ab. Der Desktop-Synchronisierungsclient verhält sich anders: Er überträgt Dateien in kleineren Teilen und unterliegt nicht den hier beschriebenen Upload-Limits für Einzelanfragen.
Ermitteln Sie zunächst den Anfragepfad. Prüfen Sie, ob Benutzer Dateien über den Browser, WebDAV oder den Desktop-Client hochladen und ob die Website über Nginx, Apache, einen Load Balancer oder den Proxy des Hosting-Anbieters läuft. Falls Sie den Server nicht selbst verwalten, senden Sie dem Administrator die Größe der fehlgeschlagenen Datei, die Upload-Methode, den Zeitpunkt des Fehlers und den Fehlercode. Nur er kann serverseitige Beschränkungen ändern.
Welche PHP-Einstellungen sollten Sie ändern?
Bearbeiten Sie für PHP-FPM die Konfiguration des PHP-FPM-Dienstes, der Nextcloud bedient – nicht nur die PHP-Konfiguration in der Kommandozeile. Unter Debian oder Ubuntu lautet ein üblicher Pfad `<php-version>` /etc/php/8.2/fpm/php.ini; ersetzen Sie ` 8.2<php-version>` durch die installierte PHP-Version. Ihre Distribution oder Ihr Container verwendet möglicherweise einen anderen Pfad. Laut PHP-Handbuch post_max_sizemuss `<php-version>` größer als `<php-version>` sein upload_max_filesize, lassen Sie also genügend Platz für den Anfrage-Overhead.
Beispielhafter PHP-FPM-Konfigurationspfad. Verwenden Sie die PHP-Version und den Dateipfad, die in Ihrem Nextcloud-Dienst aktiv sind.
Legen Sie für Ihren Server geeignete Werte fest. Beispiel: 5 GB
Beispielhafte PHP-FPM-Werte für ein Upload-Ziel von 5 GB; post_max_size ist höher als upload_max_filesize.
Die Timeout-Werte sind Beispiele, keine allgemeingültigen Vorgaben. Langsame Verbindungen, ausgelastete Server und Uploads, die am Ende zusammengestellt werden müssen, können längere Timeout-Zeiten erfordern. Die PHP-Speichereinstellungen und die Ressourcenlimits pro Worker sind weiterhin wichtig: Setzen Sie das Speicherlimit für jeden PHP-FPM-Worker nicht automatisch auf mehrere Gigabyte. Nextcloud empfiehlt in seinen PHP-Richtlinien mindestens 512 MB Speicher pro Prozess; überwachen Sie den Host und seinen PHP-FPM-Pool, bevor Sie die Ressourcenlimits erhöhen.
Speichern Sie die Datei und starten Sie den entsprechenden PHP-FPM-Dienst neu, damit die neuen Einstellungen übernommen werden. Auf einem System mit PHP 8.2 könnte der Dienst beispielsweise so aussehen php8.2-fpm:
sudo systemctl restart php8.2-fpm
Die Dienstnamen variieren. Aktualisieren Sie in Containern die eingebundene Konfiguration oder das Image und erstellen Sie den PHP-Container gemäß dem jeweiligen Bereitstellungsprozess neu.
Wie kann man das Webserver-Limit erhöhen?
Bei Nginx fügen Sie die body-size-Direktive im aktiven serverBlock für Nextcloud oder in einem spezifischeren, anwendbaren locationBlock ein:
client_max_body_size 5G;
Platzieren Sie die Nginx-Body-Größenbegrenzung im aktiven Serverblock, der Nextcloud-Anfragen verarbeitet.
Anschließend die Konfiguration überprüfen und Nginx neu laden:
sudo nginx -t
sudo systemctl reload nginx
Wenn Nginx einen Syntaxfehler meldet, beheben Sie diesen vor dem Neuladen. Falls ein anderer Proxy, Ingress-Controller oder Hosting-Gateway dazwischengeschaltet ist, kann dieser ein eigenes Limit für den Anfragetext festlegen; erhöhen Sie dieses Limit ebenfalls. Ein Limit eines vorgelagerten Proxys kann den Upload ablehnen, selbst wenn der Nextcloud-Host korrekt konfiguriert ist.
Prüfen Sie bei Apache LimitRequestBodydie entsprechende Konfiguration des virtuellen Hosts oder Verzeichnisses. Die aktuelle Nextcloud-Dokumentation weist darauf hin, dass Apache HTTP Server 2.4.54 und höher diese Direktive standardmäßig auf 1 GiB setzt. Dies kann Uploads über dieser Größe verhindern. Legen Sie ein für den Host geeignetes Byte-Limit fest oder verwenden Sie diese Direktive 0nur, wenn Sie bewusst kein Limit für die Größe des Apache-Bodys wünschen. Apache benötigt möglicherweise auch längere Timeouts für Anfragen, insbesondere wenn mod_reqtimeoutdiese Option aktiviert ist.
Können Speicherprobleme oder Zeitüberschreitungen den Upload noch verhindern?
Ja. Das temporäre Upload-Verzeichnis von PHP, das konfigurierte temporäre Verzeichnis von Nextcloud und das von Nginx client_body_temp_pathmüssen über ausreichend freien Speicherplatz verfügen und beschreibbar sein. Planen Sie genügend Speicherplatz für gleichzeitige Uploads und, in manchen Speicherkonfigurationen, für die Zusammenstellung hochgeladener Datenblöcke ein. Überprüfen Sie das entsprechende Dateisystem df -hund stellen Sie sicher, dass das Dienstkonto in das konfigurierte temporäre Verzeichnis schreiben kann. Verwenden Sie für temporäre Dateien kein Verzeichnis, das vollständig belegt oder schreibgeschützt ist.
Prüfen Sie außerdem das Nextcloud-Kontingent des Benutzers und den freien Speicherplatz des Servers. Das Erhöhen eines Limits für die Anfragegröße erhöht weder das Kontingent des Benutzers noch schafft es zusätzlichen Speicherplatz. Erhöhen Sie ein Kontingent nur dann, wenn das Konto über ausreichend Speicherplatz für die Datei verfügt. Tritt der Fehler gegen Ende eines Uploads auf oder wird ein Timeout oder Gateway-Fehler gemeldet, prüfen Sie die PHP-, Webserver-, Proxy- und Nextcloud-Protokolle, bevor Sie weitere Limits erhöhen. Das Nextcloud-Handbuch nennt PHP-Timeouts und Nginx-Fehler ausdrücklich fastcgi_read_timeoutals mögliche Ursachen, insbesondere während finaler MOVE-Anfragen.
Wichtig: PHP-Regeln upload_max_filesizeverhalten post_max_sizesich bei WebDAV-PUT-Anfragen für einzelne Dateien oder Chunked-Upload-Anfragen von Nextcloud möglicherweise nicht gleich. Hier können PHP- und Webserver-Timeouts den limitierenden Faktor darstellen. Analysieren Sie die Upload-Methode, bevor Sie Einstellungen ändern, die nicht relevant sind.
Wie können Sie die Fehlerbehebung bestätigen?
Beginnen Sie mit einer Testdatei, die deutlich über dem alten Limit liegt, und testen Sie anschließend eine Datei, die sich in der Nähe des neuen Ziels befindet. Laden Sie die Datei über denselben Browser oder Client hoch, der ursprünglich fehlgeschlagen ist. Vergewissern Sie sich, dass die Übertragung abgeschlossen ist, die Datei die erwartete Größe hat und heruntergeladen oder geöffnet werden kann. Eine grüne Anzeige für den abgeschlossenen Upload in der Dateiansicht ist ein hilfreicher erster Anhaltspunkt; vergleichen Sie aber auch die gespeicherte Dateigröße.
Nach der Änderung muss überprüft werden, ob eine Testdatei, die größer als das vorherige Limit ist, in der erwarteten Größe angezeigt wird und als vollständig gekennzeichnet ist.
Schlägt der Test weiterhin fehl, nutzen Sie den Fehler, um die nächste limitierende Ebene zu ermitteln: Ein HTTP-413-Fehler deutet auf eine Begrenzung des Anfragetextes hin, ein 504-Fehler oder ein kurz vor Abschluss liegender Fehler auf ein Timeout, und eine Meldung über ein Kontingent oder begrenzten Speicherplatz weist auf die Speicherkapazität hin. Überprüfen Sie die Protokolle für denselben Zeitstempel und passen Sie nur die entsprechende Einstellung an. Halten Sie das Limit nahe an der größten erwarteten Upload-Größe und reservieren Sie ausreichend temporären Speicherplatz für parallele Aktivitäten.