我在/ home /目录中的IP:192.168.1.1的远程ubuntu机器上有一个shell脚本test.sh,我在ubuntu机器上安装了我的apache2和php,IP:192.168.1.2。
我需要从webserver机器上执行远程节点上的shell脚本,有什么方法可以使用php脚本吗?
答案 0 :(得分:0)
我认为你可以做的快速方式(但不是安全方式)是在另一台服务器上设置一个Web服务器,并在那里创建一个PHP脚本来调用bash脚本。所以在服务器192.168.1.1上你调用脚本php。
但我认为最好的方法就是当你想要调用这个脚本时,将请求放在某个队列中(可能在数据库中),在另一个服务器上你创建一个Python或PHP脚本来使用它排队并运行bash脚本。这个Python / PHP脚本将通过Cron执行。因此,通过这种方式,您无法像第一个解决方案那样直接调用脚本。这是安全的方式。
答案 1 :(得分:0)
我最近发布了一个项目,允许PHP在需要时通过SSH获取真正的Bash shell并与之交互。在此处获取:https://github.com/merlinthemagic/MTS
我可以建议触发虚拟命令而不是脚本。这样你就可以处理返回而无需在bash中构建异常处理。
下载后,您只需使用以下代码:
public function LogOut($id) {
$user = User::find($id);
$user->active_user=1;
$user->save();
Auth::logout();
return redirect('admin/login');
}