Выполнить команду оболочки 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>";
?>
Теперь, когда я обновляю свой браузер, я не могу увидеть вывод в браузер.
3 answers
Хорошо, я вижу твою проблему, Рана.
В Linux необходимо было установить некоторые команды оболочки вместе с переменной среды TERM.
top
является одним из них.
Кроме того, необходимо использовать флаг -b, чтобы получить результат из выходного буфера, который в данном случае является терминалом...
Попробуйте этот код:
<?php
$var = shell_exec('TERM=xterm /usr/bin/top -n1 -b');
echo "<pre>$var</pre>";
?>
Поскольку браузер пользователя не является интерактивным терминалом, мы должны выполнять вашу последнюю команду в каждой обратной передаче, чтобы имитировать команду linux top
.
Ваш сценарий выглядит нормально, давайте убедимся, что ваша среда настроена правильно, изменив сценарий, чтобы сделать что-то очень простое. Попробуйте заменить весь код чем-то вроде
<?php
echo "Hello World";
Если это сработает, то немного дополнительной отладки: Находитесь ли вы на общем веб-хостинге, где PHP, возможно, настроен для отключения выполнения сценариев? Посмотрите, отключен ли shell_exec
, как описано здесь (замените строку exec
на shell_exec
).