La taille limite d’envoi de fichiers sous WordPress est bien souvent restreinte à 2 Mo.
Cette limite ne vient pas de WordPress mais de la configuration de PHP sur votre hébergement : 2 Mo est la valeur par défaut de PHP. WordPress retient la plus petite de ces deux directives : upload_max_filesize, la taille maximale d’un fichier envoyé, et post_max_size, la taille maximale de l’ensemble des données envoyées en une fois. Pour augmenter la limite, il faut donc redéfinir ces directives, et la bonne méthode dépend de la façon dont votre hébergeur exécute PHP.
Vérifier la limite actuelle et le mode d’exécution de PHP
La limite en vigueur est indiquée sous la zone d’envoi de l’écran Médias > Ajouter un fichier média, par exemple « Taille de fichier maximale pour le téléversement : 2 Mo. »
Pour le détail, ouvrez Outils > Santé du site, onglet Informations, puis dépliez la section Serveur. Vous y trouverez la valeur de upload_max_filesize (ligne Taille maximale de téléversement de fichier), celle de post_max_size (Taille maximale d’envoi de PHP), la Limite de mémoire PHP et la ligne PHP SAPI, qui indique comment PHP est exécuté : apache2handler pour le module PHP d’Apache (mod_php), fpm-fcgi pour PHP-FPM et cgi-fcgi pour CGI/FastCGI. Pour toute autre valeur, reportez-vous à la documentation de votre hébergeur. La section Traitement des médias affiche quant à elle la Taille de fichier effective maximale retenue par WordPress.
Méthode 1 : passer par le panneau de votre hébergeur
Si votre hébergeur propose, dans son panneau de gestion, une page de configuration de PHP, c’est la méthode la plus simple : vous y modifiez upload_max_filesize et post_max_size sans toucher aux fichiers du site. Cherchez cette page dans la documentation de votre hébergeur.
Méthode 2 : créer un fichier .user.ini
Si la ligne PHP SAPI indique fpm-fcgi ou cgi-fcgi, PHP lit, en plus de sa configuration principale, les fichiers .user.ini placés dans le dossier du script exécuté et dans ses dossiers parents, jusqu’à la racine du site. Créez donc, à la racine de votre installation WordPress (le dossier qui contient wp-config.php), un fichier nommé .user.ini. Son nom commençant par un point, pensez à afficher les fichiers cachés dans votre client FTP.
Ajoutez-y les lignes suivantes, en adaptant les valeurs à vos besoins :
La taille limite d’envoi de fichiers sera augmentée à 64 Mo. La valeur de post_max_size doit rester supérieure à celle de upload_max_filesize, puisqu’elle englobe le fichier et les autres données envoyées avec lui. D’après la documentation de PHP, memory_limit devrait à son tour dépasser post_max_size : si la Limite de mémoire PHP de votre site est plus basse, ajoutez une ligne memory_limit avec une valeur supérieure.
PHP ne relit pas ce fichier à chaque visite : il garde son contenu en cache 5 minutes par défaut (directive user_ini.cache_ttl). Patientez donc quelques minutes avant de vérifier le résultat.
Certains hébergeurs demandent plutôt un fichier php.ini, avec la même syntaxe : suivez alors leur documentation. Avec PHP-FPM, un fichier php.ini placé dans le dossier du site n’est en revanche pas lu. N’ajoutez pas non plus dans le fichier .htaccess la ligne suPHP_ConfigPath, que l’on recommandait autrefois pour déclarer ce php.ini : elle ne fonctionne qu’avec le module Apache mod_suphp et, sans lui, provoque une erreur 500 (Internal Server Error) sur tout le site.
Méthode 3 : le fichier .htaccess, uniquement avec mod_php
Si la ligne PHP SAPI indique apache2handler, PHP fonctionne comme module d’Apache et accepte ces directives dans le fichier .htaccess situé à la racine de WordPress. Ajoutez ces lignes en dehors du bloc compris entre # BEGIN WordPress et # END WordPress, que WordPress peut réécrire :
Le bloc <IfModule mod_php.c>, valable pour PHP 8, évite l’erreur 500 que provoqueraient ces directives avec PHP-FPM ou CGI/FastCGI : elles y sont simplement ignorées, et c’est alors la méthode 2 qui s’applique.
Vérifier le résultat
Rechargez l’écran Médias > Ajouter un fichier média : la taille maximale indiquée doit correspondre à la plus petite de vos deux valeurs, soit 64 Mo dans cet exemple. Si un fichier dépasse encore la limite, la médiathèque affiche « … dépasse la limite de téléversement de ce site. »
Il est possible que d’autres restrictions existent au niveau de votre hébergeur. Par exemple, il est probable que la limite ait augmenté mais pas à la valeur désirée. Dans ce cas, contactez votre hébergeur.
Si vous administrez vous-même un serveur nginx, sa directive client_max_body_size, fixée à 1 Mo par défaut, bloque aussi les envois plus lourds avec une erreur 413 (Request Entity Too Large) : ajoutez par exemple client_max_body_size 72m; dans le bloc server de votre site, puis rechargez nginx.
Enfin, sur un réseau multisite, WordPress applique en plus son propre plafond, réglable dans l’administration du réseau, sous Réglages > Réglages du réseau : champ Taille maximale des fichiers téléversés, fixé à 1 500 Ko par défaut.
Autre limite fréquente à relever : augmenter la limite mémoire PHP de WordPress.
22 réponses
Bonjour, j’ai le même problème en localhost, j’ai modifier le fichier php.ini de php admin et apache mais cela ne marche toujours pas Help svp
Il faut contacter votre hébergeur directement.
La méthode décrite dans l’article n’a pas marché pour moi, par contre celle de Thomas dans le 1er commentaire a réussi.
En plus c’est la plus facile, comme la page est numéro 1 pour cette recherche il faudrait changer l’article et proposer au début cette 1ere méthode !
php_value upload_max_filesize 20M
php_value post_max_size 20M
php_value max_execution_time 240
Merci pour ces explications intéressantes
Pour augmenter la taille des fichier à télécharger sur wordpress : allez à www sur wampserver et
– chercher la page php.ini sur ce chemein : C:wampbinapacheApache2.4.4bin
– ouvrir cette page à l’aide de Notepad++
– Cherchez upload_max_filesize = 2M
– Changez 2M par une valeur comme vous voulez ex : upload_max_filesize = 20M
– Enregistrer les modifications puis restart all service de appache.
bonjour a tous
je désire faire mon site et l’heberger sur un pc Personnel et la je travail en local sur wordpress avec la même problématique comment dépasser 2Mo alors que je vais héberger sur le même PC ?
merci ( je débute )
Bonjour Merci pour tuto
pour Wamp j’ai juste modifier php.ini est ça marche par contre dans un hébergeur rien ni résultat ni affiche erreur …
Bonsoir, j’aimerais savoir comment faire avec un localhost (j’ai pas encore les couilles pour faire sur un hebergeur) ! je suis nouveau et j’arrive avec votre méthode, je travaille avec easyphp ! une aide s’il vous plait surtout pour ça » suPHP_ConfigPath /home/protutsn/public_html/php.ini » j’ai fais copie coller mais j’arrive pas mon fichier php.ini je l’ai créer sur C:Program Files (x86)EasyPHP-DevServer-13.1VC9php.ini
Aucun changement pour moi… Je suis chez OVH et j’ai toujours la même erreur… un peu d’aide ? 🙂 MErci !
Changes d’hébergeur… 😉
Oui merci ^^ après quelques recherches supplémentaires, je viens de voir que c’était pas bien faisable ^^ du coup je passe par autre chose !
Bonjour,
J’essaye d’installer un thème wordpress en local pour l’instant et j’ai le message d’erreur suivant « La taille du fichier envoyé excède celle indiquée dans la directive upload_max_filesize, dans php.ini. »
Quelqu’un peut-il m’aider ? Sachant que le dossier du thème pèse 7Mo.
Merci beaucoup
Bonjour,
Avez-vous eu votre réponse car je suis dans le même cas.
Merci
Up, meme soucis pour moi qui est en local (wamp). WP 3.5.1
Je vais peut être poser une question peu intelligente mais je vais tout de même essayer :
Même si pour le moment le dépassement de capacité m’est pas arrivée, ne peut-on pas, comme pour d’autres envois, compresser les fichiers?
En tous cas, tes informations pourront m’être utile, si je dépasse ces 2Mo
Tout à fait, réduire le poids des fichiers envoyés en compressant la qualité des images ou des vidéos mais aussi des documents est une solution.
Effectivement, ta méthode n’est absolument pas générique.
Elle ne doit pas fonctionner chez la majorité des hébergeurs mutualisés qui tiennent pas à allouer des quantités de mémoires excessives aux clients.
La version de Thomas ne fonctionne que selon la configuration d’Apache2. La directive AllowOverride doit assez très permissive pour autoriser ces modifications « à la volée »
En effet, comme signalé en début d’article, la méthode décrite ici a fonctionné chez moi…
Par contre, je suis preneur de toute alternative plus générale. 😉
Pas de méthode magique, cela dépend du serveur utilisé, il faut ça soit Apache2, il faut que l’installation PHP le permette (mod_php, PHP-CGI, SuPHP).
Et ensuite, il faut que la configuration d’Apache2 le permette, soit via le .htaccess, soit via un fichier php.ini.
Personnellement, j’aime beaucoup le principe de Webmin/VirtualMin, un fichier PHP.ini par Vhost.
C’est vraiment très utile à l’usage.
Pour ma part, un façon plus flexible et plus rapide mais peut-être pas la meilleur est d’utiliser le fichier .htaccess et d’ajouter ceci.
php_value upload_max_filesize 20M
php_value post_max_size 20M
php_value max_execution_time 240
J’utilise ceci à chaque fois pour mes projets, je peux varier dépendament du projet.
Super, ca marche toujours aujourd’hui. Merci
merci