¿Por qué tenés tantas líneas de display_errors y error_reporting? ¿Qué hace la última (error_reporting(-1))?
Código PHP:
ini_set('display_errors', 1);
error_reporting(E_ALL);
debería ser suficiente, y funcionar. Ni idea de lo que haga error_reporting(-1), podría estar volviendo a ocultar el error.
Tampoco creo que funcione echo "clave" | sudo, sería un problema de seguridad. Para terminar, sudo normalmente requiere la contraseña del usuario que lo ejecuta, no la contraseña de root.