#php #shell #unix #scriptin& #exec
#php #оболочка #unix #создание сценариев #exec
Вопрос:
Это странно. Хотя базовые команды, такие как ls, date, whoami, работают. Кажется, я не могу создать каталог с помощью команды mkdir с использованием exec
$output=exec("mkdir helloworld");
Также стоит спросить, возникает ли такая ошибка. есть ли какой-либо параметр, который я могу использовать для фиксации этой ошибки. Нравится приведенный ниже пример?
exec("mkdir helloworld 2&&t;amp;1",$output,$return_val)
if($return_val !== 0)
echo "there was an error"
Комментарии:
1. Есть ли конкретная причина, по которой не следует использовать
mkdir
( php.net/manual/en/function.mkdir.php ) ?2. Пожалуйста, определите:
doesn't work
. Вы проверили разрешения? Вы проверили путь?3. Я создаю веб-терминал .. который выполняет команды UNIX в браузере
4. @Bobby Я могу создать каталог, используя команду mkdir helloworld в терминале. Почему бы не использовать exec() ? Возможно, потому, что я использую root в терминале. а www-data с использованием команды exec из браузера?
5. Вы проверили вывод $output? Это должно дать вам больше информации о том, что там произошло. Я держу пари, что из-за недостаточных привилегий.
Ответ №1:
скорее всего, это связано с отсутствием привилегий пользователя, выполняющего код (во многих случаях пользователя apache). Если вы добавите «2&&t;amp;1» к своей команде, вы также можете увидеть вывод ошибки в $output