Il ne ressort pas clairement de votre question ce que vous modifiez dans chacun de ces fichiers, mais je suppose que dans chaque cas, c'est le upload_max_filesize
paramètre PHP .
En général, les paramètres seront appliqués dans cet ordre, chacun remplaçant la valeur précédente:
- php.ini
- Directives Apache en .htaccess
- appelle à
ini_set()
Cependant, ce paramètre est défini comme PHP_INI_PERDIR
, ce qui, comme expliqué sur cette page, signifie qu'il ne peut pas être défini à l'aide de ini_set
, donc wp-config.php
ne peut pas le modifier. Ainsi, dans l'exemple que vous donnez dans la question, il prendra la valeur de .htaccess de 64 Mo.
Vous pouvez le vérifier en exécutant echo ini_get('upload_max_filesize');
quelque part dans votre code.
Notez qu'il existe d'autres valeurs d'endroits que je n'ai pas répertoriées ci-dessus, telles que les fichiers php.ini par utilisateur et d' autres contextes de configuration Apache . De plus, certains d'entre eux peuvent être désactivés , donc si votre serveur n'est pas configuré pour autoriser les dépassements dans .htaccess, vous ne pourrez pas non plus y définir de valeur.
Notez également que Wordpress inclut certaines de ses propres variables de configuration, qui interagissent de différentes manières avec la configuration PHP. Par exemple, WP_MEMORY_LIMIT
tentera d' augmenter le memory_limit
paramètre PHP au démarrage, mais dispose d'un code qui le vérifie et ne l'abaisse jamais . Il n'y a pas de règle générale, ce sera différent pour différents paramètres.
Fondamentalement, les trois fichiers sont pris en considération.
WordPress / votre serveur vérifiera dans l'ordre suivant:
wp-config.php > .htaccess > php.ini
Si quelque chose à un "niveau supérieur" (plus tard dans la chaîne) limite votre valeur, l'ancienne valeur sera ignorée ou remplacée. Si un morceau de la chaîne est manquant, la valeur dans
.htaccess
par exemple, la plus haute suivante sera utilisée à la place.Dans votre exemple, le
.htaccess
limiteraitmax_upload_size
à 64 Mo, bien que votre serveur soit bien avec jusqu'à 256 Mo et WordPress accepterait également jusqu'à 128 Mo en taille de fichier en premier.Vous pouvez également définir une limite différente via le
.htaccess
fichier et ce faisant, vous écrasez la valeur dephp.ini
sorte qu'elle ne soit plus la valeur dominante. Cela fonctionne dans de nombreux environnements d'hébergement, donc les chances sont assez bonnes que vous puissiez augmenter ou diminuer lemax_upload_size
de cette façon.Si vous avez un hébergement / serveur plus strictement configuré, il est possible que l'option de remplacer les paramètres de
php.ini
soit désactivée. Dans ce cas, outrepassantmax_upload_size
du.htaccess
travail ne le ferai pas, donc cela pourrait être un facteur limitant.la source
.htaccess
c'est au milieu de la liste, pourquoi serait-ce le facteur limitant?Je pense que flomei devrait modifier la réponse, car c'est la bonne réponse mais une mauvaise explication.
Php.ini -> .htaccess -> wp-config.php
est en fait l'ordre de lecture de chaque fichier et définira les valeurs en tenant compte du fait qu'il n'y a pas de paramètre défini précédemment. Mais dans le cas où il existe un paramètre précédemment défini, il ne sera "remplacé" que si le nouveau paramètre est inférieur.Cela signifie que si vous avez wp-config.php avec 64 Mo et .htaccess avec 32 Mo: wp-config.php ne remplacera pas ce paramètre car il y a déjà une limite inférieure et vous vous retrouverez avec 32 Mo.
Mais si vous avez wp-config.php avec 32 Mo et .htaccess avec 64 Mo, wp-config.php réduira le paramètre précédent à 32 Mo.
Edit: Pour clarifier, comme le souligne IMSoP, wp-config.php vous permet simplement de définir une taille plus restrictive que ce que les paramètres PHP permettent si vous changez 'WP_MEMORY_LIMIT', cela ne vous laisse pas aller au-delà. Il ne s'agit donc pas en fait d'un remplacement de paramètres. En fait, des contrôles séparés sont effectués à différents points lors de l'exécution. Si vous modifiez le paramètre php
upload_max_filesize
comme il le suppose (la question n'indique pas quels paramètres modifiez-vous), cela n'a aucun effet.En outre, vous devrez tenir compte du fait que le
post_max_size
doit être supérieur à celuiupload_max_filesize
de vos paramètres phpla source
upload_max_filesize
cela ne peut pas être changé au moment de l'exécution (probablement parce qu'il est trop tard pour que cela ait un effet) etwp-config.php
ne peut donc pas l'affecter d'une manière ou d'une autre. Un défaut intégré de 2 Mo est également mentionné, et vous pouvez certainement le définir plus haut que cela.wp-config.php
estini_set('upload_max_filesize', '32M');
qu'il aura aucun effet, jamais , parce que ce paramètre ne peut être réglé à l' exécution comme il est défini commePHP_INI_PERDIR
. (Sauf si cette page de documentation est erronée, mais cela semble peu probable.)wp-config.php
valeurs spécifiques et la définition de valeurs PHP arbitraires avecini_set()
. Si je comprends bien, ilwp-config.php
s'agit principalement de définir des valeurs de configuration spécifiques à WordPress et beaucoup d'entre elles sont en effet limitées (c'est-à-dire une limite supérieure imposée) par le paramètre de configuration PHP sous-jacent (telWP_MEMORY_LIMIT
que mentionné dans la réponse). C'est une chose WordPress. Cependant, lors de la définition de valeurs de configuration PHP arbitraires à l'aideini_set()
de PHP, il n'y a pas une telle restriction.