通过php连接到linux的ssh2

时间:2016-05-28 15:22:37

标签: php linux ssh gnu-screen

我尝试将我的我的Minecraft白名单通过php更新到我的linux服务器。 连接工作,但我不知道为什么他没有发送我的命令将用户添加到白名单。

这是我的代码:

    function addorder($name,$price){
        echo $name." Price: ".$price;
        echo "<br>";
        alert("function worked");
    }

1 个答案:

答案 0 :(得分:1)

您正在使用&&加入命令,所有这些命令将在您当前的shell中一个接一个地执行,而不是在屏幕内。 screen可以在所选会话中执行命令,但使用自己的语法。例如,请参阅this questionmanual。在您的情况下,命令必须如下所示:

screen -S session_name -X stuff $'whitelist add user_name && whitelist reload\n'

注意字符串末尾的\n符号。由于screen不会真正执行命令,因此执行命令是必需的,screen将“将指定的命令发送到正在运行的屏幕会话”,如手册所述。考虑屏幕将输入命令而不是您。输入命令时,必须按Enter / Return键才能执行。

在PHP中,您可以这样执行命令:

$stream = ssh2_exec($ssh, "screen -S $mc -X stuff \$'whitelist add $name && whitelist reload\\n'");