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.
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.
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.
| Cause | Comment vérifier | Correctif |
|---|---|---|
| upload_max_filesize est inférieur à la taille du fichier | Media → 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_filesize | Le 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écute | Le 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 multisite | Admin 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. |
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.
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;'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
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
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
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;'
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.
J'ai soulevé upload_max_filesize et rien n'a changé. Pourquoi ?
Quelle est la différence entre ceci et -Echec d'écrire un fichier sur disque -?
Y a-t-il un maximum que je ne devrais pas passer?
Puis-je augmenter la limite d'un site sur un réseau multisite seulement?
Si le problème vient d’ailleurs.
Ces erreurs peuvent se présenter de façon similaire dans le navigateur.