shell_exec()在"ls"上返回null

Mok*_*euh 24 php linux centos

所以我有这个代码,我只是试图在另一个目录中创建一个列表,其中php脚本位于xampp文件夹中,并且保存到此路径/root/files/saves:

<html>
<body>
<?php
$output = shell_exec('ls /root/files/saves');
echo "<pre>$output</pre>";
?>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我不知道为什么我不能让它工作var_dump似乎输出是null我真的很困惑它应该工作或我只是它都错了我需要一些帮助.

Ama*_*ali 69

添加2>&1到shell命令的末尾以便STDERR返回STDOUT.

$output = shell_exec("ls /root/files/saves 2>&1");
Run Code Online (Sandbox Code Playgroud)

此外,如果运行PHP的用户没有足够的权限来查看输出/root/,则上面的代码将返回Permission denied错误消息.

资料来源:http://php.net/manual/en/function.shell-exec.php#28994