我正在尝试构建一个启动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);
但是我访问该文件后服务器永远不会启动。我究竟做错了什么?
我想感谢你在感恩节的帮助。虽然我还没有找到解决方案,但我很欣赏这些努力。再次感谢。
答案 0 :(得分:2)
您检查过错误日志吗?它默认为/var/log/httpd
。如果出现任何问题,应该在那里。否则,它可能会出错,我建议在screen中启动它,这样你就可以跳进来检查它正在做的事情。
通过您的发行版使用的任何方法安装screen
,然后将启动字符串更改为:
screen -dmS "minecraft" java -Xmx1024M -Xms1024M -jar /home/ec2-user/mineserver/minecraft_server.jar nogui
答案 1 :(得分:2)
该命令将使用权限以及Web服务器运行的任何用户帐户的环境执行。
特别是,它可能有一个不同的PATH
条目,甚至可能找不到java
命令,或者可能在其他地方找到它等等......
另外,请注意它从PHP脚本继承的当前工作目录。
请参阅exec()
并检查输出以帮助您自己进行一些基本的调试。
另外,你可能想要更像
的东西exec('nohup java etc... > /dev/null 2>&1 &');
以便进程正确地进行后台处理并与Web服务器父进程断开连接。