команда mkdir не работает с использованием exec() в PHP

#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