【问题标题】:Start Minecraft_Server.jar via PHP Exec() or similar function通过 PHP Exec() 或类似函数启动 Minecraft_Server.jar
【发布时间】:2012-11-23 12:49:08
【问题描述】:

我正在尝试构建一个以minecraft_server.jar 开头的脚本(位置:用户目录/mineserver/minecraft_server.jar)。

我已经安装了 PHP 和 Apache,我正在尝试从 /var/www/html/interface.php 启动服务器 JAR。

通过控制台,服务器通过运行正常启动:

java -Xmx1024M -Xms1024M -jar mineserver/minecraft_server.jar nogui

...来自用户目录。所以在interface.php 文件中我有以下内容(注意上面列出的位置):

system('java -Xmx1024M -Xms1024M -jar /home/ec2-user/mineserver/minecraft_server.jar nogui', $retval);

但在我访问该文件后,服​​务器永远不会启动。我究竟做错了什么?

感谢所有线索。

我想说谢谢你在感恩节的帮助。虽然我还没有找到解决方案,但我很感激这些努力。再次感谢。

【问题讨论】:

  • 权限问题?可能是运行 Apache 的用户无法读取该文件。
  • @GuillaumeBrunerie - Apache 通常在什么用户下运行?
  • 我假设system 没有被禁用?如果不是,system 调用的结果是什么?
  • @Unobtainium 我以同样的方式尝试了系统,但无法启动服务器。
  • @weingage $result = shell_exec('java ...'); var_dump($result); 怎么样?它打印什么?

标签: java php jar amazon-ec2 minecraft


【解决方案1】:

您检查过错误日志吗?默认为/var/log/httpd。如果有任何问题,它应该在那里。否则,它可能会开始出错,我建议在 screen 中启动它,这样您就可以进入并检查它正在做的任何事情。

通过您的发行版使用的任何方法安装screen,然后将启动字符串更改为:
screen -dmS "minecraft" java -Xmx1024M -Xms1024M -jar /home/ec2-user/mineserver/minecraft_server.jar nogui

【讨论】:

  • 您的代码“服务器”部分是否需要更改为特定于我的设置的内容? (又名服务器名称或我不知道的东西)
  • 不,这是将要启动的屏幕的名称。如果您访问 php 文件,您应该能够转到提示符并使用 screen -x NAME 访问屏幕(如果它运行正常) - 假设您将其命名为“服务器”,命令将是 screen -x server
  • 屏幕已安装,我用您上面的代码替换了我的 exec() 代码,但无济于事。有什么建议么?谢谢您的帮助。 PS:我设置了 $success = exec() 并在最后回显它,但什么也没得到。不确定这是否有助于提供线索。
  • 听起来更像是您有错误并且脚本未完成,错误日志中没有任何有趣的内容?
  • [Fri Nov 23 03:40:16 2012] [error] [ip address] 文件不存在:/var/www/html/favicon.ico 无法访问 jarfile /home/e sh : 第 1 行: c2-user/mineserver/minecraft_server.jar: 没有这样的文件或目录 --- 所以看起来好像没有找到文件?
【解决方案2】:

该命令将使用权限以及运行 Web 服务器的任何用户帐户的环境执行。

特别是,它可能有一个不同的PATH 条目,甚至可能找不到java 命令,或者它可能在其他地方找到等等......

另外,请注意它从您的 PHP 脚本继承的当前工作目录。

查看exec() 并检查输出以帮助自己进行一些基本调试。

另外,你可能想要更多类似的东西

exec('nohup java etc... > /dev/null 2>&1 &');

以便该进程得到适当的后台处理并与网络服务器父进程断开连接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-25
    • 1970-01-01
    • 2011-04-18
    相关资源
    最近更新 更多