Limite baixo da variável max_input_vars no PHP
Descrição do problema
Durante o uso do Omeka S no ambiente sgm.ufg.br, foi identificado um problema ao salvar páginas, formulários e configurações administrativas que continham muitos campos.
O comportamento observado incluía:
- páginas não salvando corretamente;
- formulários retornando erro ou tela em branco;
- alterações realizadas no painel não sendo persistidas;
- campos desaparecendo após salvar;
- falha ao salvar páginas com muitos blocos, mídias, recursos ou metadados;
- erro relacionado ao limite de variáveis aceitas pelo PHP.
O problema estava relacionado à configuração da variável PHP: max_input_vars
Causa do problema
A variável max_input_vars define a quantidade máxima de variáveis que o PHP aceita em uma única requisição, especialmente em envios do tipo POST. Por padrão, muitos ambientes PHP utilizam o seguinte valor:
max_input_vars = 1000
Esse limite pode ser insuficiente para o Omeka S, principalmente em telas administrativas com muitos campos, como páginas com vários blocos, formulários extensos, configurações de módulos, metadados e recursos vinculados. Quando o número de campos enviados ultrapassa esse limite, o PHP descarta parte das informações da requisição. Como consequência, o Omeka S não recebe todos os dados necessários para concluir o salvamento corretamente.
Solução aplicada
Para corrigir o problema, foi necessário aumentar o limite da variável max_input_vars no PHP.
O valor foi ajustado para:
max_input_vars = 6000
A alteração deve ser feita no arquivo de configuração do PHP-FPM utilizado pelo site. No caso do ambiente com PHP, o arquivo principal é:
/etc/php/fpm/php.ini
Após a alteração, foi necessário reiniciar o serviço do PHP-FPM para aplicar a nova configuração:
sudo systemctl restart php-fpm
Em ambientes com Nginx, também pode ser recomendado reiniciar o serviço web:
sudo systemctl restart nginx