Sua configuração de sudoers está correta, na verdade, quando você executa:
sudo -u www-data /usr/bin/php test.php
funcione como esperado.
Em operação normal, seu apache é executado como root e usa o módulo mpm-itk . Aqui está o problema.
De acordo com a documentação do mpm-itk :
% bl0ck_qu0te%
e:
% bl0ck_qu0te%
Isso significa que o processo mpm-itk fork apache e o uso de setuid () para atribuir o usuário desejado a cada host virtual.
De acordo com o manual do setuid :
% bl0ck_qu0te%
Isso já poderia explicar, mas não estou convencido, eu baixei a fonte do mpm-itk e notei que ele mudou capacidade permitem e restringem o intervalo de uid de 1 a UINT_MAX.
% bl0ck_qu0te%
Minha conclusão é que usando mpm-itk seus scripts php não podem obter permissão de root.
Se tiver a oportunidade, pode verificar se está a executar o apache como www-data e a desativar o módulo mpm-itk o seu test.php funciona.