首页 > 解决方案 > SSH 进入动态远程服务器并运行命令 - Laravel 5.8

问题描述

我正在使用 L 5.8,我有一个带有 3 个输入的表单

在此处输入图像描述

现在,我可以使用这个包通过 SSH 连接到特定的服务器laravelcollective/remote": "~5.8。我需要预先 配置IP、UN、PW 之config/remote.php类的:

'connections' => [
    'production' => [
        'host'      => '1.1.1.1',
        'username'  => 'code',
        'password'  => '8888',
        'key'       => '',
        'keytext'   => '',
        'keyphrase' => '',
        'agent'     => '',
        'timeout'   => 10,
    ],
],

然后,我可以轻松运行任何命令,甚至链接它们

$commands = ['cd /home/code && ./runMe.sh'];
SSH::run($commands, function($line)
{
    echo $line.PHP_EOL;
});

结果

我的门户将连接到该服务器并成功运行该命令,并且我已经验证了它。


现在

我需要从表单输入中读取它。是否可以使用相同的插件并动态设置该文件remote.php

或者

我应该开始寻找其他东西,因为这是一个死胡同吗?

请指教,

标签: phplaravellaravel-5sshlaravel-5.8

解决方案


您可以在config()此处使用帮助程序:

示例配置:

config([
'remote.connections.production.host' => $request->input('hostname'),
'remote.connections.production.username' => $request->input('username'),
'remote.connections.production.password' => $request->input('password')
]);

然后调用:

$commands = ['cd /home/code && ./runMe.sh'];
SSH::run($commands, function($line)
{
    echo $line.PHP_EOL;
});

推荐阅读