2

Во-первых, я запускаю все эти команды через пользователя www-data .. который является пользователем apache2 ... Использование php и функции exec для запуска этих команд ...

Я создаю каталог

mkdir -p testing

Теперь давайте посмотрим папки

ls

тестирование каталога не показывается ... хотя папка была создана (проверяю по физическому пути)

1 ответ1

1

Во-первых, убедитесь, что каталог, в который вы пишете, а) существует, и б) имеет права, позволяющие вам читать / писать в него.

Во-вторых, старайтесь не использовать exec, system или что-то подобное. Это не только небезопасно (передача аргументов может быть настоящей дырой в безопасности), но и добавляет большие накладные расходы на операцию, порождая новые подпроцессы и т.д.

  • PHP имеет встроенную функцию mkdir()
  • ls можно заменить вызовом scandir()

Кроме того, использование exec() просто возвращает последнюю строку команды, которую вы выполняете. Если вам действительно нужно использовать системную программу для выполнения функций, то вы должны либо использовать passthru() для возврата данных прямо в браузер, либо shell_exec(), если вы хотите получить вывод в виде строки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .