Запустите команду exec () / system () и т. Д., Используя PHP и OpenBSD - PullRequest
0 голосов
/ 08 июля 2019

Я пытаюсь запустить простую команду, скажем ls -l в оболочке OpenBSD (uname -r: 6.4), используя php 5.6.

<code><?php

$output = shell_exec('ls -l');

echo "<pre>$output
"; ?>

Нет вышеприведенного кода. Просто отметка pre при проверке элементов Так, что вызывает эту проблему? Я пытался использовать ту же команду, используя

  1. Система
  2. shell_exec
  3. exec

Не повезло. Что будет причиной этого? Вероятно, System/shell_exec не поддерживается в версии Php для OpenBSD или чего-то еще.

Заранее спасибо!

1 Ответ

1 голос
/ 10 июля 2019

Вы не дали достаточно информации для однозначного ответа, но я предполагаю, что вы запускаете от php до php-fpm, что по умолчанию имеет значение /var/www.Поскольку shell_exec и система сначала вызывают /bin/sh, и вы, скорее всего, не скопировали его в var/www/bin/sh, он не может найти вашу оболочку.После этого вам также необходимо скопировать двоичные файлы (в данном случае ls) в chroot и возможные зависимости библиотеки (не требуется для файлов в / bin).

Надеюсь, это поможет в иллюстративных целях, но, пожалуйста, не используйте его в производстве.

...