Laravel - 返回SSH输出

时间:2014-07-25 16:49:08

标签: php ajax laravel ssh

感谢您对此主题感兴趣。我是 Laravel 的新手,我有一个小问题。也许这很容易! 我的Laravel中有一个SSH模块可以这样工作: 用户使用Linux命令填充textarea元素。 该命令与Ajax一起传递给位于'controllers'文件夹中的名为getExecute()的方法 我想这个方法返回我的SSH服务器的完整响应,但这不会发生。该方法返回的唯一内容是空格。

例如:我传递命令'ls -la',我的响应是Linux找到的所有文件夹,就像在终端上一样。 有谁可以帮助我吗? 这是我的代码:

public function getExecute()
{
    if(\Request::ajax()):

        $ssh_command = \Input::get('ssh_command');
        $ssh_response = null;

        \SSH::run($ssh_command, function($line)
        {
            return $line.PHP_EOL;
        });

    endif;
}

OBS:Ajax连接已经过测试,没关系! 谢谢!

1 个答案:

答案 0 :(得分:1)

终于解决了!解决方案如下:

首先,我在班上创建了一个名为$ output的变量。

private $output;

然后我修改了我的方法:

public function postExecute()
{
    $ssh_command = \Input::get('ssh_command');
    $ssh_response = \SSH::run($ssh_command, function($line)
    {
        $this->output = $line.PHP_EOL;
    });

    return $this->output;
}

我的方法不是更多Ajax ,但我希望我所要做的就是像以前一样回滚到我的ajax方法。谢谢所有人!