通过PHP启动Gameserver(和其他批处理文件)

时间:2018-08-17 00:27:43

标签: php cmd server exec minecraft

我有一台运行XAMPP的Windows Server(正在运行Apache 2.4和PHP 7),并且我想构建一个PHP脚本,该脚本可以在同一台计算机上启动和停止一些游戏服务器。


我现在正在为 Minecraft服务器而苦苦挣扎,所以让我们以此为例:

我有一个名为C:\_tekkitlite的文件夹,是我的世界服务器所在的文件夹。这些文件夹中有以下文件(以及其他一些不重要的文件):

launch.bat
minecraft_server.jar
TekkitLite.jar

C:\_tekkitlite\launch.bat中包含以下代码:

java -Xmx3G -Xms2G -jar TekkitLite.jar nogui
pause

我当前的C:\_xampp\htdocs\startserver.php如下:

system('C:\_tekkitlite\launch.bat');

执行上面的行时,我收到以下消息

C:\_xampp\htdocs>java -Xmx3G -Xms2G -jar TekkitLite.jar nogui C:\_xampp\htdocs>pause Dr�cken Sie eine beliebige Taste . . .

问题是机器上没有运行Java进程,因此minecraft服务器处于脱机状态。


当我将C:\_xampp\htdocs\startserver.php更改为以下内容时:

system('java -Xmx3G -Xms2G -jar C:\_tekkitlite\TekkitLite.jar nogui');

我没有收到来自php的消息(我认为因为此代码结尾没有pause)但是我得到了一个Java进程和一个正在运行的服务器。

问题是您无法加入该服务器,因为该服务器似乎没有执行任何操作。通常,Minecraft服务器启动后会创建一堆文件,而当我使用上述脚本启动该文件时,我的文件不会。


从现在开始,我不知道该怎么办。我在某个地方犯了错误吗?

我认为权限不是问题,因为当我使用{p>在C:上创建批处理时

echo "TestTestTestTest"
pause

php输出此TestTestTestTest很好。

0 个答案:

没有答案