背景:我正在为VPS上的朋友运行Minecraft服务器,我正在尝试使用PHP为它创建一种“状态网页”。这是我试图实施的最后一件事;我有一个服务器上/下指示器,在线时间等。
我遇到问题的脚本是显示播放器列表。理想情况下,我希望能够做的是显示在我的服务器上播放的人的名字列表,以及离线的人的蓝色和蓝色的在线人员。
现在我遇到问题的部分是:
minecraft服务器jar文件在'screen'中执行,标记为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,您可以看到正在发生的事情。
答案 0 :(得分:0)
这很可能是Linux权限问题。您需要为运行Apache(www-data?)的用户授予执行命令'screen'
的权限