Augmenter la limite d'upload WordPress (chez tout hébergeur)
Vérifiez la limite d'upload de WordPress, puis augmentez-la au bon endroit chez votre hébergeur : php.ini, .user.ini, .htaccess, cPanel, Nginx ou Cloudflare.
Pour augmenter la limite d’upload dans WordPress, augmentez deux réglages PHP, upload_max_filesize et post_max_size, dans le fichier de configuration que votre hébergeur lit réellement. C’est php.ini sur un serveur que vous gérez, .user.ini chez la plupart des hébergeurs mutualisés qui utilisent PHP-FPM ou FastCGI, .htaccess seulement quand Apache exécute PHP comme module, ou le MultiPHP INI Editor dans cPanel. Si votre serveur tourne sous Nginx, augmentez aussi client_max_body_size. Modifier wp-config.php ne changera pas la limite d’upload.
L’outil de taille d’upload maximale WordPress transforme une taille cible en valeurs correspondantes pour php.ini (ou .user.ini), .htaccess et wp-config.php, pour que vous puissiez les coller au lieu de les taper à la main.
Étape 1 : vérifier votre limite d’upload actuelle
Avant de changer quoi que ce soit, regardez quelle est la limite aujourd’hui et quel réglage la fixe.
- Médias > Ajouter un fichier média. L’écran d’envoi affiche la taille maximale des fichiers. C’est le chiffre que vous voulez augmenter.
- Outils > Santé du site > Informations. Dépliez Gestion des médias. La documentation de Santé du site liste ce qui y figure : la taille maximale autorisée des données POST, la taille maximale d’un fichier envoyé et la taille de fichier maximale effective, qui est la plus petite des deux. La section Serveur affiche d’autres valeurs PHP.


WordPress calcule sa limite dans wp_max_upload_size(), qui lit upload_max_filesize et post_max_size dans PHP et retient la plus petite. Si l’une vaut 64M et l’autre 8M, votre limite est de 8M.
Étape 2 : savoir quels réglages comptent
| Réglage | Ce qu’il limite | Valeur par défaut PHP | Où le modifier |
|---|---|---|---|
upload_max_filesize | Le plus gros fichier envoyé, pris seul | 2M | php.ini, .user.ini, .htaccess, httpd.conf |
post_max_size | Toute la requête POST, fichier compris | 8M | php.ini, .user.ini, .htaccess, httpd.conf |
memory_limit | La mémoire que PHP peut utiliser pendant l’exécution | 128M | Partout, y compris wp-config.php |
max_execution_time | Les secondes pendant lesquelles un script peut tourner | 30 | Partout, y compris wp-config.php |
client_max_body_size (Nginx) | Le corps de requête que Nginx accepte | 1m | Uniquement dans la configuration Nginx |
Les valeurs par défaut et les modes de modification de PHP viennent de la liste des directives php.ini ; la valeur par défaut de Nginx vient de la documentation du module core de Nginx. La plupart des hébergeurs fixent des valeurs plus hautes que celles de PHP, c’est pourquoi Santé du site est l’endroit où lire vos vrais chiffres.
upload_max_filesize et post_max_size sont ce que PHP appelle des réglages INI_PERDIR : ils « peuvent être définis dans php.ini, .htaccess, httpd.conf ou .user.ini » et nulle part ailleurs. memory_limit ne plafonne pas la taille des fichiers, mais WordPress a besoin de mémoire pour créer des copies redimensionnées des grandes images, donc un gros envoi peut quand même échouer avec une erreur de mémoire épuisée une fois arrivé.
Étape 3 : augmenter la limite au bon endroit pour votre hébergeur
| Votre configuration | Où la régler | Remarques |
|---|---|---|
| VPS ou serveur dédié | Le php.ini que votre PHP charge réellement | Redémarrez PHP-FPM ou Apache ensuite |
| Hébergement mutualisé avec PHP-FPM ou FastCGI | .user.ini à la racine de WordPress | Peut mettre jusqu’à 5 minutes à s’appliquer |
| Apache avec PHP en module (mod_php) | .htaccess avec php_value | Provoque une erreur 500 sous PHP-FPM ou FastCGI |
| Hébergeur avec cPanel | Logiciels > MultiPHP INI Editor | Écrit php.ini, .user.ini ou .htaccess pour vous |
| Nginx devant PHP | client_max_body_size en plus des valeurs PHP | Sinon Nginx renvoie 413 |
| Hébergement WordPress infogéré | Le tableau de bord ou le support de l’hébergeur | Beaucoup d’hébergeurs plafonnent les envois au niveau de la plateforme |
| Site derrière Cloudflare | La limite d’envoi propre à Cloudflare | 100 MB sur les offres Free et Pro |
php.ini (serveur que vous gérez)
Trouvez d’abord le fichier chargé. Créez un fichier temporaire contenant <?php phpinfo();, ouvrez-le dans un navigateur, lisez la ligne « Loaded Configuration File », puis supprimez le fichier. Modifiez ce php.ini :
upload_max_filesize = 128M
post_max_size = 130M
max_execution_time = 300
Redémarrez ensuite PHP pour qu’il lise le changement. Avec PHP-FPM, le nom du service contient la version, par exemple sudo systemctl restart php8.3-fpm sur Debian ou Ubuntu. Avec mod_php, redémarrez Apache.
.user.ini (la plupart des hébergements mutualisés)
PHP ne lit les fichiers .user.ini que lorsqu’il tourne en CGI ou FastCGI, ce qui inclut PHP-FPM. Créez ou modifiez .user.ini dans le dossier qui contient wp-config.php :
upload_max_filesize = 128M
post_max_size = 130M
PHP relit ces fichiers toutes les user_ini.cache_ttl secondes, soit 300 par défaut. Attendez cinq minutes avant de conclure que cela n’a pas marché, ou redémarrez PHP-FPM si vous le pouvez.
.htaccess (Apache avec mod_php uniquement)
php_value upload_max_filesize 128M
php_value post_max_size 130M
Le manuel PHP décrit ces directives pour PHP exécuté comme module Apache. Si votre site affiche une erreur 500 Internal Server Error juste après l’enregistrement, PHP tourne en FastCGI ou PHP-FPM. Retirez les lignes et utilisez plutôt .user.ini.
MultiPHP INI Editor de cPanel
Dans cPanel, ouvrez Logiciels > MultiPHP INI Editor, choisissez votre domaine et changez les valeurs en Basic Mode. D’après la documentation de cPanel, le Basic Mode enregistre dans les fichiers php.ini, .user.ini et .htaccess là où chacun prend en charge le réglage, vous n’avez donc pas besoin de savoir lequel votre serveur utilise.
Nginx
Nginx vérifie la taille de la requête avant que PHP ne la voie. Quand une requête dépasse client_max_body_size, Nginx renvoie 413 Request Entity Too Large. La valeur par défaut est 1m. Ajoutez dans votre bloc server une valeur au moins aussi grande que post_max_size :
client_max_body_size 130M;
Testez et rechargez avec sudo nginx -t && sudo systemctl reload nginx. Sur Apache, le réglage équivalent est LimitRequestBody, qu’il faut rarement modifier sur un hébergement WordPress standard.
Hébergeurs infogérés et Cloudflare
Certains hébergeurs WordPress infogérés ignorent votre php.ini ou .user.ini et fixent la limite pour toute la plateforme. Si Santé du site affiche toujours l’ancien chiffre après votre changement, demandez à votre hébergeur quel est le maximum et s’il peut l’augmenter.
Si le site passe par Cloudflare, Cloudflare a sa propre limite. Sa documentation sur le cache indique des tailles d’envoi maximales de 100 MB sur les offres Free et Pro, 200 MB sur Business et jusqu’à 5 GB sur Enterprise. Aucun réglage PHP ne permet de passer outre.
Pourquoi wp-config.php ne fonctionne pas
Beaucoup d’articles conseillent d’ajouter ceci dans wp-config.php :
@ini_set( 'upload_max_filesize', '128M' );
@ini_set( 'post_max_size', '130M' );
Les deux réglages sont INI_PERDIR, et la documentation PHP précise que les réglages de ce mode ne peuvent pas être définis avec ini_set(). Le @ masque l’échec, donc les lignes semblent inoffensives et ne changent rien. Ce que wp-config.php peut changer, c’est la mémoire, car memory_limit peut être défini partout :
define( 'WP_MEMORY_LIMIT', '256M' );
Cela aide quand de grandes images échouent pendant le traitement. Cela ne change pas la taille maximale des fichiers envoyés.
Étape 4 : confirmer le changement
Rechargez Médias > Ajouter un fichier média et vérifiez que la taille maximale des fichiers affiche votre nouvelle valeur. Sinon :
- Vérifiez que
post_max_sizeest au moins aussi grand queupload_max_filesize. WordPress retient la plus petite valeur. - Confirmez que vous avez modifié le fichier que PHP charge réellement. Un
php.inidans le mauvais dossier est ignoré. - Attendez cinq minutes après un changement de
.user.ini, ou redémarrez PHP-FPM. - Si le chiffre a changé dans WordPress mais que les envois échouent encore avec 413, le blocage vient de Nginx, du proxy de votre hébergeur ou de Cloudflare.
- Si l’envoi arrive dans WordPress puis échoue avec « Erreur HTTP », la taille n’est plus en cause. Notre guide sur l’erreur HTTP WordPress lors de l’envoi d’images couvre les causes habituelles.
Quelle valeur choisir ?
Réglez-la sur le plus gros fichier que vous devez vraiment envoyer, avec un peu de marge, et gardez post_max_size légèrement au-dessus de upload_max_filesize. Les gros envois prennent aussi plus de temps, donc augmentez max_execution_time si les fichiers lourds expirent sur des connexions lentes. Pour les très gros fichiers, comme de longues vidéos ou des archives de sauvegarde, un envoi par SFTP ou une extension d’envoi par morceaux est en général plus fiable qu’un seul énorme envoi dans le navigateur, et la limite d’une offre Cloudflare peut de toute façon exclure le navigateur.
Quand vous connaissez votre cible, l’outil de taille d’upload maximale écrit pour vous les lignes PHP correspondantes. Ajoutez vous-même la ligne Nginx de ce guide si votre serveur tourne sous Nginx.
FAQ
Questions
Comment vérifier la limite d'upload actuelle dans WordPress ?
Allez dans Médias > Ajouter un fichier média. L'écran d'envoi affiche la taille maximale des fichiers. Pour le détail, ouvrez Outils > Santé du site > Informations et dépliez Gestion des médias, qui indique la taille maximale d'un fichier envoyé, la taille maximale des données POST et la taille de fichier maximale effective, c'est-à-dire la plus petite des deux.
Pourquoi WordPress dit-il que le fichier envoyé dépasse la directive upload_max_filesize dans php.ini ?
Le fichier est plus gros que le réglage PHP upload_max_filesize. WordPress ne fixe pas cette limite, il la lit dans PHP. Augmentez upload_max_filesize et post_max_size ensemble dans php.ini, .user.ini ou, sur Apache avec mod_php, .htaccess. La valeur par défaut de PHP pour upload_max_filesize n'est que de 2M, même si la plupart des hébergeurs fixent une valeur plus élevée.
Puis-je augmenter la limite d'upload depuis wp-config.php ?
Non. upload_max_filesize et post_max_size sont des réglages PHP_INI_PERDIR, que PHP n'accepte que depuis php.ini, .htaccess, httpd.conf ou .user.ini. Une ligne ini_set() dans wp-config.php s'exécute sans erreur et ne change rien. wp-config.php peut augmenter la limite de mémoire de WordPress, mais ce n'est pas la mémoire qui plafonne la taille des fichiers.
Pourquoi ai-je encore l'erreur 413 Request Entity Too Large après avoir augmenté les limites PHP ?
Quelque chose placé avant PHP rejette la requête. Sur Nginx, c'est client_max_body_size, dont la valeur par défaut est 1m et qui renvoie une erreur 413 quand elle est dépassée. Augmentez-la dans le bloc server et rechargez Nginx. Si votre site passe par Cloudflare, la limite d'envoi de votre offre peut aussi bloquer la requête avant qu'elle n'atteigne votre serveur.
post_max_size doit-il être plus grand que upload_max_filesize ?
Il doit être au moins aussi grand, et un peu plus grand est plus sûr. Le fichier est envoyé dans une requête POST avec les autres données du formulaire, donc toute la requête compte dans post_max_size. WordPress prend la plus petite des deux valeurs comme limite d'upload, donc augmenter seulement upload_max_filesize laisse la limite au même niveau.