PHP - 在Windows上的后台启动minecraft_server.jar

时间:2018-01-16 19:03:32

标签: php minecraft

我正在为我的服务器进行管理,我想让它远程运行,但我发现了一个问题。当我启动minecraft服务器时,该文件的进程仍然有效,我的页面将被冻结,直到该进程被终止。

我找到了许多答案,但不幸的是,我在Windows上运行它。

有可能吗?我知道我可以启动启动服务器的.bat服务器,但我想说清楚。

我的代码:

chdir("D:/xampp/htdocs/hosting/servers/" . $id);
                //$WshShell = new COM("WScript.Shell");
                //$oExec = $WshShell->Run("ava -Xmx1g -jar minecraft_server.jar", 0, false);
//idk how WshShell works, but it didn't worked..
                exec("java -Xmx1g -jar minecraft_server.jar");

提前感谢您的回复!

修改

嗯,有一个问题。我曾试图用WinShell开始其他事情但没有任何事情发生。当我想从WinShell开始时,什么都没发生,所以我必须启用一些东西来启用WinShell,或者有人知道为什么我的WinShell什么都不运行?

代码

chdir("D:/xampp/htdocs/hosting/servers/" . $id);
$WshShell = new COM("WScript.Shell");
$oExec = $WshShell->Run("java -Xmx1g -jar minecraft_server.jar", 0, false);

2 个答案:

答案 0 :(得分:0)

听起来你想要触发Minecraft服务器作为后台进程。虽然我还没有能够尝试下面的解决方案,但这个帖子听起来像是在试图解决类似的问题:

PHP exec() as Background Process (Windows Wampserver Environment)

答案 1 :(得分:0)

好的,我有解决方案。 即使是Wscript.Shell也不行,这个命令正在运行。

$cmd = "java -jar D:/xampp/htdocs/hosting/servers/" . $id . "/minecraft_server.jar";
pclose(popen("CMD /C start /B " . $cmd, "r"));

感谢您的帮助!