No PHP base, eu posso pensar em apenas uma opção de configuração que poderia quebrar isso, que é post_max_size
, então verifique seu php.ini e arquivos relacionados para ter certeza de que esse valor é são e não configurado para zero ou um valor inválido como um caractere alfabético.
Suhosin torna possível bloquear variáveis de postagem em uma variedade de condições, incluindo coisas como comprimento de array e comprimento de nome de variável. Grep seus arquivos php.ini para 'suhosin' para ver se há configurações presentes, especialmente qualquer coisa começando com 'suhosin.post'. (Veja link para mais detalhes sobre os parâmetros que estou pensando.)
Infelizmente, salvo uma grande falha na configuração que definiu algum valor para um ou zero, seu código (e variáveis) são curtos o suficiente para que isso seja um pouco difícil. Se isso vier em branco, minha próxima sugestão seria fazer backup de suas configurações do Apache e PHP, atacar seus diretórios, limpar os pacotes, reinstalar e começar a colocar pedaços de configuração de volta no lugar até que o código pare de funcionar novamente (alternativamente, comece a atualizar esse servidor que está trabalhando com configurações do servidor não funcionante até que ambos estejam quebrados). Como você tem o mesmo servidor OS-PHP funcionando corretamente, isso é quase certamente um erro de configuração no servidor com defeito em algum lugar, mas esse é um palheiro bastante grande para pesquisar.
O controle de versão de / etc é altamente recomendado antes de você começar isto - olhe no pacote etckeeper. (Na verdade, eu recomendo o seu uso, ponto. Grande protetor de sanidade, especialmente em uma máquina onde mais de uma pessoa tem acesso root.)