Digamos que eu queira alterar o limite máximo de upload para um site Wordpress e forneço os seguintes valores:
wp-config.php: 128MB php.ini: 256MB .htaccess: 64MB
Então, qual deles o Wordpress priorizaria ao processar quando necessário?
Não está claro em sua pergunta o que você está alterando em cada um desses arquivos, mas presumo que, em cada caso, seja a upload_max_filesize
configuração do PHP .
Em geral, as configurações serão aplicadas nesta ordem, cada uma substituindo o valor anterior:
ini_set()
No entanto, essa configuração é definida como PHP_INI_PERDIR
, o que, conforme explicado nesta página, significa que não pode ser definida usando ini_set
, portanto, wp-config.php
não pode ser alterada. Portanto, no exemplo que você fornece na pergunta, o valor de .htaccess é de 64MB.
Você pode verificar isso executando echo ini_get('upload_max_filesize');
algum lugar no seu código.
Observe que existem outros locais onde os valores não podem ser listados acima, como arquivos php.ini por usuário e outros contextos de configuração do Apache . Além disso, algumas delas podem ser desativadas ; portanto, se o servidor não estiver configurado para permitir substituições no .htaccess, você também não poderá definir um valor.
Observe também que o Wordpress inclui algumas de suas próprias variáveis de configuração, que interagem de maneiras diferentes com a configuração do PHP. Por exemplo, WP_MEMORY_LIMIT
tentará aumentar a memory_limit
configuração do PHP na inicialização, mas possui um código que verifica e nunca a reduz . Não há regra geral para isso, será diferente para configurações diferentes.
Basicamente, todos os três arquivos são levados em consideração.
O WordPress / seu servidor verificará na seguinte ordem:
wp-config.php > .htaccess > php.ini
Se algo em um "nível superior" (mais tarde na cadeia) estiver limitando seu valor, o valor anterior será ignorado ou substituído. Se um pedaço da cadeia estiver faltando, o valor em,
.htaccess
por exemplo, o próximo valor mais alto será usado.No seu exemplo, o
.htaccess
limite seriamax_upload_size
de 64 MB, embora seu servidor funcione com até 256 MB e o WordPress também aceite primeiro com tamanho de arquivo de até 128 MB.Você também pode definir um limite diferente por meio do
.htaccess
arquivo e, ao fazer isso, substitui o valor dephp.ini
, para que ele não seja mais o valor dominante. Isso funciona em muitos ambientes de hospedagem; portanto, as chances são muito boas de você aumentar ou diminuirmax_upload_size
dessa maneira.Se você tiver um servidor / hospedagem mais estritamente configurado, é possível que a opção de substituir as configurações
php.ini
esteja desativada. Neste caso, substituindomax_upload_size
de.htaccess
trabalho ganhou't, assim que este poderia ser um fator limitante.fonte
.htaccess
está no meio da lista, por que esse seria o fator limitante?Acho que o flomei deve editar a resposta, porque essa é a resposta certa, mas a explicação é ruim.
Php.ini -> .htaccess -> wp-config.php
é, na verdade, a ordem em que cada arquivo será lido e definirá os valores levando em consideração que não há configurações definidas anteriormente. Mas no caso de uma configuração definida anteriormente, isso será "substituído" somente se a nova configuração for menor.Isso significa que, se você tiver o wp-config.php com 64Mb e o .htaccess com 32 MB: o wp-config.php não substituirá essa configuração porque já existe um limite mais baixo e você terá 32Mb.
Mas se você tiver o wp-config.php com 32Mb e o .htaccess com 64 MB, o wp-config.php reduzirá a configuração anterior para 32Mb.
Editar: para esclarecer, como aponta o IMSoP, o wp-config.php permite definir um tamanho mais restritivo do que o permitido pelas configurações do PHP se você estiver alterando 'WP_MEMORY_LIMIT', não permitirá que você vá além disso. Portanto, não é realmente uma substituição de configurações. De fato, há verificações separadas feitas em diferentes pontos no tempo de execução. Se você está alterando a configuração do php
upload_max_filesize
como ele assume (a pergunta não indica quais configurações você está alterando), isso não tem efeito.Além disso, você deverá levar em consideração que o valor
post_max_size
deve ser maior do queupload_max_filesize
nas configurações de phpfonte
upload_max_filesize
não pode ser alterado em tempo de execução (presumivelmente porque é tarde demais para que isso tenha algum efeito), portantowp-config.php
não pode afetá-lo de uma maneira ou de outra. Um padrão built-in de 2MB também é mencionado, e você pode definitivamente defini-lo maior do que isso.wp-config.php
for,ini_set('upload_max_filesize', '32M');
ela nunca terá efeito , porque essa configuração não pode ser definida em tempo de execução, como é definidaPHP_INI_PERDIR
. (A menos que página de documentação é errado, mas isso parece improvável.)wp-config.php
valores específicos e a definição de valores arbitrários do PHPini_set()
. Pelo que entendi,wp-config.php
tem a ver principalmente com definir valores de configuração específicos do WordPress e muitos deles são realmente restritos (ou seja, limite superior imposto) pela configuração subjacente de configuração do PHP (WP_MEMORY_LIMIT
como mencionado na resposta). Isso é coisa do WordPress. No entanto, ao definir valores de configuração arbitrários do PHP usandoini_set()
no PHP, não existe essa restrição.