puede ser cuestion de permisos, ya que al ejecutar desde web utiliza el usuario de apache, puede ser el www-data y esos archivos puede que no tengan permisos de ejecucion de ese usuario en concreto, de todas maneras puedes utilizar shell_exec y guardar el resultado en una variable:
Código PHP:
<?php
$output = shell_exec('ls -lart');
echo "<pre>$output</pre>";
?>