Sua linha de sudoers está correta, pois permite que o www-data execute o único comando como root. A sintaxe do php parece mais correta (você está validando $ num para ter certeza de que é um número? Símbolos diversos podem causar danos reais aqui. Veja link ) As duas coisas que você não mencionou foi qual apache mpm você está usando, e você está executando o php no modo de segurança. O shell_exec não funciona no modo de segurança e usa o fork, que pode não funcionar com todos os mpm. Eu recomendaria usar o premp mpm.