NouveauBlack Friday : 50 % de réduction sur votre premier paiement
Dépannage WordPress

Le fichier téléchargé dépasse la directive upload_max_filesize

PHP a refusé le fichier avant que WordPress n'en voie un octet. Le nombre dans le message est le plafond de PHP, pas celui de WordPress.

The uploaded file exceeds the upload_max_filesize directive in php.ini.

Réponse rapide

Quatre limites distinctes peuvent produire ceci, et soulever le mauvais ne change rien. Imprimer ce que PHP rapporte actuellement pour upload_max_filesize et post_max_size, comparer les deux à votre fichier, et se souvenir post_max_size doit être le plus grand des deux ou le téléchargement échoue silencieusement à la place.

Diagnostic

Les causes les plus probables d’abord.

Parcourez la liste dans l’ordre. Vérifiez chaque cause avant de modifier quoi que ce soit : les correctifs diffèrent et une supposition coûte plus cher qu’une commande.

CauseComment vérifierCorrectif
upload_max_filesize est inférieur à la taille du fichierMedia → Ajouter Nouveau imprime le maximum effectif sous la zone de dépôt. Si ce nombre est plus petit que le fichier, c'est celui-ci.Levez upload_max_filesize dans la configuration PHP qui charge réellement. Une valeur dans un php.ini le processus ne lit pas est la raison habituelle qu'une modification semble ne rien faire.
post_max_size est plus petit que upload_max_filesizeLe téléchargement échoue avec un tableau $_FILS vide plutôt que ce message, ou l'écran d'administration recharge sans erreur du tout.Définir post_max_size au-dessus de upload_max_filesize . PHP rejette tout le corps de la requête d'abord, donc une limite de fichier généreuse derrière une petite limite de corps ne sera jamais consulté.
Le serveur web capte la requête avant que PHP ne s'exécuteLe navigateur affiche un 413 de nginx ou Apache plutôt qu'un écran WordPress. Rien n'apparaît dans le journal PHP parce que PHP n'a jamais été atteint.Lever client_max_body_size dans nginx, ou LimitRequestBody dans Apache, à au moins la valeur PHP. Cette limite est appliquée sur Content-Length, donc elle rejette la requête avant qu'elle ne soit tamponnée.
Une limite de réseau multisiteAdmin réseau → Paramètres a un champ -Max uploading file size - en kilooctets, et il est inférieur à la limite PHP.Il est appliqué par site, indépendamment de ce que PHP permet, et il est mesuré en KB alors que toutes les autres limites sont ici en MB.
Guide

Corriger l’erreur, étape par étape.

Les commandes supposent un accès à WP-CLI et au terminal. Si vous n’en disposez pas, chaque étape explique comment procéder depuis le tableau de bord ou via SFTP.

  1. Demandez à PHP ce qu'il fait appliquer, de l'intérieur WordPress

    La valeur qui compte est celle que possède le processus en cours d'exécution, qui n'est pas nécessairement celle du php.ini que vous avez édité.

    wp eval 'echo ini_get("upload_max_filesize"), " / ", ini_get("post_max_size"), PHP_EOL;'
  2. Trouver quel php.ini ce processus charge réellement

    Une pile peut en avoir plusieurs. Seul celui chargé a un effet, et le chemin est imprimé pour vous.

    php --ini | head -n 3
  3. Augmenter les deux valeurs, en gardant la taille de post_max_size plus grande

    C'est la façon la plus courante de les rassembler.

    upload_max_filesize = 256M
    post_max_size = 320M
    memory_limit = 512M
  4. Relever la limite du serveur web pour correspondre

    PHP ne voit jamais une requête déjà rejetée par le serveur web, donc cela doit aussi se déplacer.

    # nginx
    client_max_body_size 320m;
    
    # then
    nginx -t && systemctl reload nginx
  5. Confirmez que le nouveau plafond est en direct

    Relisez-le à partir de WordPress plutôt que de faire confiance au fichier. Si cela n'a pas changé, PHP-FPM n'a pas été rechargé.

    systemctl reload php*-fpm
    wp eval 'echo ini_get("upload_max_filesize"), PHP_EOL;'
Sur MagicWP

Ce que la plateforme prend en charge.

Les quatre limites sont définies ici plutôt qu'une à la fois, et nginx est délibérément configuré au-dessus de chaque valeur que l'écran Paramètres PHP peut produire — de sorte que la limite que vous pouvez voir et modifier dans le tableau de bord est celle qui s'applique réellement, au lieu d'un petit plafond de serveur web qui l'écrase silencieusement.

Questions fréquentes

Questions fréquentes.

J'ai soulevé upload_max_filesize et rien n'a changé. Pourquoi ?
Soit l'édition est entrée dans un php.ini le processus ne charge pas, soit PHP-FPM n'a pas été rechargé après, soit post_max_size est toujours le plus petit des deux. Lire la valeur à partir de l'intérieur de WordPress plutôt que du fichier vous indique ce, parce qu'il rapporte ce que le processus en cours d'exécution a.
Quelle est la différence entre ceci et -Echec d'écrire un fichier sur disque -?
Celui-ci est une limite de taille qui refuse la requête. Celui-ci est un problème de système de fichiers : le téléchargement est arrivé, et le répertoire dans lequel il doit atterrir est plein, manquant ou non enregistrable par l'utilisateur PHP.
Y a-t-il un maximum que je ne devrais pas passer?
Pas un dur, mais très gros téléchargements par un navigateur échoue pour d'autres raisons — timeouts et mémoire plutôt que la limite. Passé quelques centaines de mégaoctets, SFTP est plus fiable que la bibliothèque multimédia.
Puis-je augmenter la limite d'un site sur un réseau multisite seulement?
Le réglage du réseau s'applique à chaque site, de sorte que l'approche pratique est de définir la valeur du réseau à votre besoin le plus élevé et de contrôler le reste avec des rôles. Notez qu'il est exprimé en kilooctets.
Erreurs associées

Si le problème vient d’ailleurs.

Ces erreurs peuvent se présenter de façon similaire dans le navigateur.