如果你看不到 system()、shell_exec() 等的任何输出或错误,可以尝试以下方法
<?php
function my_exec($cmd, $input='')
{$proc=proc_open($cmd, array(0=>array('pipe', 'r'), 1=>array('pipe', 'w'), 2=>array('pipe', 'w')), $pipes);
fwrite($pipes[0], $input);fclose($pipes[0]);
$stdout=stream_get_contents($pipes[1]);fclose($pipes[1]);
$stderr=stream_get_contents($pipes[2]);fclose($pipes[2]);
$rtn=proc_close($proc);
return array('stdout'=>$stdout,
'stderr'=>$stderr,
'return'=>$rtn
);
}
var_export(my_exec('echo -e $(</dev/stdin) | wc -l', 'h\\nel\\nlo'));
?>
例如,“echo shell_exec('ls');” 将不会输出任何内容,
“my_exec('ls');” 将会得到 “sh: ls: command not found”,
“my_exec('/bin/ls');” 可能得到 “sh: /bin/ls: Permission denied”,
并且权限问题可能是由 selinux 引起的。