Невозможно выполнить команды на экране Linux из сценария PHP - PullRequest
1 голос
/ 13 января 2012

Справочная информация: я использую сервер Minecraft для друзей на VPS и пытаюсь создать для него что-то вроде «статусной веб-страницы», используя PHP.Это последнее, что я пытался реализовать;У меня есть индикатор сервера вверх / вниз, время в сети и т. Д.

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

Теперь часть IУ меня проблема с:

jar-файл сервера Minecraft выполняется в «экране», помеченный как Minecraft.Чтобы получить список игроков онлайн, я должен быть в состоянии выполнить (на экране) «список», а затем ввести, и он выплевывает список игроков.

Я пробовал много разных способов выполнения командына экране из PHP, например:

$online = shell_exec('screen -S minecraft -X  print "list\r"');
    echo "<pre>Players online: $online";

Результат, который всегда отображается на веб-странице:

Players online: No screen session found.

Что я делаю не так?Мой php ужасен (я никогда не изучал PHP и изучаю его по ссылкам), но это кажется простым?

Кстати, как лучше всего добиться динамически выделенного списка символов?Массив символов, которые воспроизводятся, взрываются () и сравниваются, или я должен писать в базы данных и сравнивать с этим?

Заранее всем спасибо.

PS: для справки, сайт - эторасположен в http://fudgesminecraftserver.info,, и вы можете видеть, что происходит прямо там.

1 Ответ

0 голосов
/ 13 января 2012

Скорее всего, это проблема с разрешениями Linux.Вам необходимо дать пользователю, работающему с Apache (www-data?), Разрешение на выполнение команды 'screen'

...