1

背景:我正在为 VPS 上的朋友运行 Minecraft 服务器,并且我正在尝试使用 PHP 为其创建一种“状态网页”。这是我尝试实施的最后一件事;我有一个服务器启动/关闭指示器、在线时间等。

我遇到问题的脚本是显示播放器列表。理想情况下,我想要做的是显示在我的服务器上玩的人的姓名列表,将离线的人涂成灰色,将在线的人涂成蓝色。

现在我遇到问题的部分:

minecraft 服务器 jarfile 在标记为 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,并且正在直接学习参考),但这似乎很简单?

顺便说一句,实现动态突出显示的字符列表的最佳方法是什么?播放的字符数组,explode() 和比较,还是我应该写入数据库并从中比较?

提前谢谢大家。

PS:作为参考,网站位于http://fudgesminecraftserver.info,你可以看到那里发生了什么。

4

1 回答 1

0

这很可能是 Linux 权限问题。您需要授予运行 Apache(www-data ?)的用户执行命令“screen”的权限

于 2012-01-13T09:45:51.217 回答