Shell_exec() возвращает значение null на "ls"
Итак, у меня есть этот код, и я только пытаюсь сделать список сохранений в другом каталоге, где php-скрипт находится в папке xampp, и сохраняет это путь /root/files/saves
:
<html>
<body>
<?php
$output = shell_exec('ls /root/files/saves');
echo "<pre>$output</pre>";
?>
</body>
</html>
Я не знаю, почему я не могу заставить его работать над var_dump
, кажется, что вывод является нулевым. Я действительно запутался, он должен работать, или я просто все неправильно. Мне нужна помощь.
Ответы
Ответ 1
Добавьте 2>&1
в конец вашей команды оболочки, чтобы вернуть STDERR
, а также STDOUT
.
$output = shell_exec("ls /root/files/saves 2>&1");
Кроме того, если пользователь, работающий с PHP, не имеет достаточных разрешений для просмотра вывода в /root/
, то приведенный выше код вернет сообщение об ошибке Permission denied
.
Источник: http://php.net/manual/en/function.shell-exec.php#28994