使用 PHP exec 执行 Minecraft 命令
Use PHP exec to execute Minecraft command
我正在创建我自己的小网站来管理 Minecraft 服务器作为一个有趣的项目。现在我需要完成的是能够将命令发送到服务器所在的屏幕 运行ning.
我的处理方法如下:
<?php
if (isset($_POST['startbutton']))
{
exec('sudo screen -S 23971 -X stuff "say hello^M"');
}
?>
<form method="post">
<button type="submit" name="startbutton">Test</button>
</form>
现在,当我在终端本身执行它时,该命令行工作正常,但是当我尝试通过网站 运行 它时,没有任何反应。
如果我只是尝试执行
if (isset($_POST['startbutton']))
{
echo exec('whoami');
}
?>
它也很好用。我不知道我做错了什么。
我真的不确定,但试试看:
<?php
if (isset($_POST['startbutton']))
{
exec('sudo screen -S 23971 -X stuff "say hello^M"');
exec('YOUR SUDO PSW');
}
?>
<form method="post" action="YOUR PHP PAGE LIKE server.php">
<button type="submit" name="startbutton">Test</button>
</form>
让我知道它是否有效
您似乎正在尝试执行需要超级用户权限的命令。在大多数设置中,PHP 在网络服务器用户下运行,它没有这些权限。您还应该记住,授予超级用户权限 PHP 是一种安全风险。
我的建议是有一个专门的服务,负责执行那些 shell 命令。然后,您可以从 PHP 脚本中调用该服务而无需 sudo。
检查这些细节:
首先:感谢大家的支持。
我做了一些进一步的研究并找到了解决我的问题的方法:
我创建了一个新用户,然后我授予了 /var/www 的所有权。
然后我将 apache2 用户从 www-data 更改为新用户。
现在我只需要以新用户身份使用 minecraft 服务器启动屏幕,这样我就可以从 php 访问这个屏幕,并且我能够让它工作而无需授予任何用户完全 root 权限或任何东西。
我正在创建我自己的小网站来管理 Minecraft 服务器作为一个有趣的项目。现在我需要完成的是能够将命令发送到服务器所在的屏幕 运行ning.
我的处理方法如下:
<?php
if (isset($_POST['startbutton']))
{
exec('sudo screen -S 23971 -X stuff "say hello^M"');
}
?>
<form method="post">
<button type="submit" name="startbutton">Test</button>
</form>
现在,当我在终端本身执行它时,该命令行工作正常,但是当我尝试通过网站 运行 它时,没有任何反应。 如果我只是尝试执行
if (isset($_POST['startbutton']))
{
echo exec('whoami');
}
?>
它也很好用。我不知道我做错了什么。
我真的不确定,但试试看:
<?php
if (isset($_POST['startbutton']))
{
exec('sudo screen -S 23971 -X stuff "say hello^M"');
exec('YOUR SUDO PSW');
}
?>
<form method="post" action="YOUR PHP PAGE LIKE server.php">
<button type="submit" name="startbutton">Test</button>
</form>
让我知道它是否有效
您似乎正在尝试执行需要超级用户权限的命令。在大多数设置中,PHP 在网络服务器用户下运行,它没有这些权限。您还应该记住,授予超级用户权限 PHP 是一种安全风险。
我的建议是有一个专门的服务,负责执行那些 shell 命令。然后,您可以从 PHP 脚本中调用该服务而无需 sudo。
检查这些细节:
首先:感谢大家的支持。 我做了一些进一步的研究并找到了解决我的问题的方法:
我创建了一个新用户,然后我授予了 /var/www 的所有权。 然后我将 apache2 用户从 www-data 更改为新用户。 现在我只需要以新用户身份使用 minecraft 服务器启动屏幕,这样我就可以从 php 访问这个屏幕,并且我能够让它工作而无需授予任何用户完全 root 权限或任何东西。