Выполнить команду оболочки Linux с помощью PHP-скрипта и отобразить в браузере?


Выполнение команд оболочки unix с использованием PHP Выполнение команд оболочки с использованием PHP-скрипта Выполнить команду оболочки через php и отобразить ее в браузере? Я уже ссылался на приведенные выше ссылки. Но у меня возникла проблема с отображением процесса командной оболочки Linux в браузере. Моя команда linux: top -n 1 и хотел отобразить их с помощью php в браузере..

myscript.php
<?php
$var = shell_exec('top -n 1');
echo "<pre>$var</pre>";
?>

Теперь, когда я обновляю свой браузер, я не могу увидеть вывод в браузер.

Author: Community, 2015-05-03

3 answers

Хорошо, я вижу твою проблему, Рана. В Linux необходимо было установить некоторые команды оболочки вместе с переменной среды TERM. top является одним из них. Кроме того, необходимо использовать флаг -b, чтобы получить результат из выходного буфера, который в данном случае является терминалом... Попробуйте этот код:

<?php
$var = shell_exec('TERM=xterm /usr/bin/top -n1 -b');
echo "<pre>$var</pre>";
?>
 1
Author: Andreas Venieris, 2015-05-03 15:29:46

Поскольку браузер пользователя не является интерактивным терминалом, мы должны выполнять вашу последнюю команду в каждой обратной передаче, чтобы имитировать команду linux top.

 0
Author: Andreas Venieris, 2015-05-03 06:46:03

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

<?php
echo "Hello World";

Если это сработает, то немного дополнительной отладки: Находитесь ли вы на общем веб-хостинге, где PHP, возможно, настроен для отключения выполнения сценариев? Посмотрите, отключен ли shell_exec , как описано здесь (замените строку exec на shell_exec).

 0
Author: Martin Konecny, 2017-05-23 11:55:13