Un chargement Nextcloud bloqué à 2 Go est généralement limité par une couche spécifique du processus, et non par un paramètre global de Nextcloud. Pour accepter des fichiers plus volumineux, définissez une limite supérieure à la taille maximale autorisée pour chaque couche gérant le chargement : PHP, le serveur web, et tout proxy inverse ou panneau d'hébergement. Vérifiez ensuite que l'espace de stockage, l'espace temporaire et les délais d'expiration des requêtes sont suffisants pour supporter le transfert.
Ce guide utilise une limite de 5 Go comme exemple pour des fichiers jusqu'à environ 4 Go. Choisissez une limite adaptée à votre utilisation réelle, prévoyez une marge pour la surcharge liée aux requêtes et assurez-vous que ce paramètre soit cohérent sur l'ensemble de votre infrastructure. Les exemples concernent un serveur Nextcloud autogéré utilisant PHP ; l'hébergement géré, les conteneurs et les appliances peuvent proposer des options de configuration différentes.
Pourquoi un chargement de 2 Go peut échouer
Le manuel d'administration actuel de Nextcloud explique que les chargements de fichiers volumineux peuvent être limités par la configuration PHP et du serveur web. Lors des chargements par morceaux, le navigateur ou le client envoie des fragments que Nextcloud assemble ; certaines directives PHP de taille de fichier peuvent ne pas s'appliquer à ces requêtes, tandis que les délais d'expiration du serveur web ou de PHP peuvent toujours les bloquer. Un proxy, un pare-feu, un système de stockage, un quota utilisateur ou un disque temporaire saturé peuvent imposer une autre limite. Consultez le guide d'administration des chargements de fichiers volumineux de Nextcloud et le guide utilisateur des chargements volumineux de Nextcloud .
« 2 Go » peut également signifier 2 000 000 000 octets ou 2 Gio (2 147 483 648 octets). La limite affichée et le seuil réel peuvent différer. Notez l’erreur, la taille du fichier en octets et si l’erreur survient immédiatement ou après le début du traitement. Ces informations permettent d’identifier la couche à examiner.
1. Identifiez la première couche qui rejette le téléchargement.
Avant de modifier les paramètres, notez le mode de chargement du fichier : interface web Nextcloud, client de synchronisation pour ordinateur ou mobile, ou application WebDAV. Testez avec un fichier légèrement plus volumineux que l'ancien seuil, mais évitez de charger à plusieurs reprises un fichier de plusieurs gigaoctets pendant le dépannage. Consultez l'interface d'administration et le journal de Nextcloud, le journal des erreurs du serveur web, les journaux PHP-FPM ou Apache, ainsi que le tableau de bord de votre proxy ou hébergement au moment de l'incident.
- Une réponse HTTP 413 immédiate indique souvent une limite de taille pour le corps des requêtes du serveur web ou du proxy.
- Un avertissement PHP concernant un fichier dépassant une taille autorisée renvoie aux paramètres de téléchargement PHP pour une requête multipart classique.
- Un transfert qui démarre mais se bloque ou expire suggère un délai d'attente dépassé lors de la requête, une interruption de la connexion ou une saturation des ressources.
- Un message clair concernant le quota signifie que c'est l'espace de stockage Nextcloud disponible pour l'utilisateur, et non la limite de téléchargement du serveur, qui constitue l'obstacle.
Ce ne sont que des indices, pas des diagnostics définitifs : un proxy peut masquer une erreur d’application, et les journaux varient selon le déploiement. Comparez les horodatages entre les différentes couches avant de modifier la configuration.
2. Définir les limites PHP pour les téléchargements de formulaires via le navigateur
Trouvez la configuration PHP utilisée par le processus Nextcloud accessible via le web. Sous Debian ou Ubuntu, un fichier PHP-FPM standard se trouve généralement dans le répertoire `php-fpm /etc/php/<version>/fpm/php.ini/php`. Apache avec mod_php utilise généralement un fichier séparé apache2/php.ini. La configuration PHP en ligne de commande peut différer ; par conséquent, modifier uniquement le fichier indiqué par `php-fpm` peut ne pas avoir d'effet sur le site web. Le guide de configuration PHPphp --ini de Nextcloud décrit le contexte de configuration côté serveur.
Pour une limite de 5 Go, vérifiez ces paramètres dans la configuration PHP web active :
upload_max_filesize = 5G
post_max_size = 5G
max_input_time = 3600
max_execution_time = 3600
post_max_sizeLa taille doit être au moins égale à celle du upload_max_filesizefichier cible ; définir les deux valeurs sur la même cible est un point de départ pratique pour un transfert multipart d'un seul fichier. Les durées indiquées ci-dessus sont des exemples et ne garantissent pas la fin du transfert : choisissez une durée adaptée à votre bande passante disponible et à votre politique opérationnelle. N'augmentez pas la durée maximale de transfert PHP memory_limità 5 Go simplement parce que le fichier fait 5 Go. La documentation PHP indique que cette max_input_timedurée inclut le temps passé à recevoir les données à télécharger et que le comportement du transfert dépend des directives associées ; consultez la documentation relative aux pièges liés au transfert PHP .
3. Augmenter la limite de requêtes du serveur Web
Nginx avec PHP-FPM
Dans le bloc serveur Nginx actif pour Nextcloud, définissez une limite de taille pour le corps des requêtes supérieure à la taille maximale du fichier que vous souhaitez accepter. Par exemple, pour un fichier de 5 Go :
client_max_body_size 5G;
Placez-le dans le contexte approprié , httpen évitant une valeur inférieure conflictuelle dans un bloc plus spécifique. Nginx documente cette directive dans sa documentation de référence des modules principaux . L'exemple d'installation Nginx de Nextcloud inclut également les paramètres upload-size et timeout. Validez la configuration avant de recharger Nginx.serverlocationsudo nginx -t
Apache
Vérifiez si l'hôte virtuel actif, la configuration du répertoire ou la configuration incluse définit des limites LimitRequestBody. Sur les versions d'Apache où une limite par défaut ou explicite est inférieure à votre cible, augmentez-la au nombre d'octets requis ou utilisez 0l'option `--no-apache-limit` uniquement si cela convient à votre déploiement. Assurez-vous que la directive est placée dans un contexte autorisé par votre version et configuration d'Apache. Apache décrit son comportement dans la documentation `LimitRequestBody` . Exécutez cette commande apachectl configtestavant de recharger le service.
4. Vérifiez les proxys inverses, les conteneurs et le stockage.
Si le trafic transite par une autre instance Nginx, un équilibreur de charge, un panneau de contrôle d'hébergement ou un proxy de sécurité, ses limites de taille de corps et de délai d'attente doivent également autoriser le chargement. Une requête peut être rejetée avant d'atteindre Nextcloud. Mettez à jour uniquement la couche responsable de ce paramètre, puis consultez ses journaux et son code de réponse. Pour un déploiement Docker ou autre conteneur, modifiez la configuration montée dans le conteneur en cours d'exécution ou les paramètres d'environnement pris en charge par cette image ; un fichier PHP hôte ne doit pas être utilisé par le conteneur.
Les chargements volumineux consomment des ressources. Assurez-vous que le volume de données Nextcloud dispose de suffisamment d'espace libre et que le répertoire temporaire du serveur PHP ou web peut supporter la charge de travail. Lors de chargements par morceaux, de l'espace temporaire peut être nécessaire pendant l'assemblage des morceaux ; les déploiements de stockage objet peuvent nécessiter un disque temporaire supplémentaire. Prévoyez des chargements simultanés, et non pas un seul fichier de taille maximale. Consultez la section de Nextcloud relative à l'espace temporaire et aux chargements de fichiers volumineux avant d'augmenter la limite dans une installation fortement sollicitée.
5. Appliquer les modifications et vérifier par un test contrôlé
Une fois la configuration validée, rechargez ou redémarrez les services PHP-FPM et serveur web concernés afin qu'ils prennent en compte les nouveaux paramètres. Le nom exact de ces services varie selon la distribution et la version de PHP. Évitez de redémarrer les services de production non concernés. Ensuite, téléchargez un fichier légèrement supérieur à la limite précédente de 2 Go (par exemple, un fichier de test d'environ 2,1 Go) en utilisant le même client et la même route que lors du premier échec. Veillez à ce que la taille du fichier de test reste inférieure à la nouvelle limite et surveillez l'espace disque disponible, les journaux et la progression du transfert.
Un test réussi doit se terminer sans erreur de taille HTTP ni délai d'attente, le fichier doit apparaître dans le dossier Nextcloud prévu et sa taille doit être plausible lorsqu'elle est vérifiée côté client. Pour un fichier important, comparez la somme de contrôle à la source et à la destination si votre flux de travail le permet. Une barre de progression atteignant 100 % ne garantit pas à elle seule que le fichier enregistré est complet.
Lorsque cette solution ne suffit pas
- Le chargement via le navigateur fonctionne, mais le client de bureau échoue : examinez le comportement du client, du proxy et du serveur en cas de dépassement de délai. Les clients Nextcloud utilisent des chargements par blocs ; par conséquent, la modification de la configuration PHP
upload_max_filesizeseule peut ne pas résoudre un problème de requête par bloc ou de dépassement de délai d'assemblage final.
- L'erreur indique que l'utilisateur manque d'espace : ajustez son quota Nextcloud ou son espace de stockage libre ; augmenter la limite de requêtes ne créera pas de capacité.
- L'échec se produit au même nombre d'octets pour chaque client : recherchez une limitation au niveau du proxy partagé, du WAF, du fournisseur d'hébergement ou du serveur Web et corrélez ses journaux avec la requête.
- Les chargements sont terminés mais consomment trop d'espace disque temporaire : réduisez les chargements simultanés, assurez-vous d'un stockage temporaire adéquat ou consultez la documentation relative au découpage et au comportement de stockage de votre système backend.
Augmenter la limite de téléchargement permet aux utilisateurs d'envoyer davantage de données au serveur ; il est donc essentiel de mettre en place des quotas, une surveillance, un espace de stockage suffisant et des contrôles d'accès pertinents. Il n'existe pas de limite maximale universellement sûre : la limite pratique dépend du débit le plus faible du système de requêtes et des capacités du serveur et du système de stockage.
Références