【发布时间】:2020-05-13 22:49:53
【问题描述】:
我是 PHP 世界的新手,但想设置一个相对简单的 PHP 脚本,当用户按下网页上的按钮时,该脚本将通过 ssh2_exec 向远程主机执行 shell 命令。我希望通过 POST 而不是 GET 来处理它。我想避免使用 bash 脚本进行 Web CGI。
在查看了this documentation on ssh2_exec 之后,我能够对需要做什么有所了解,但我仍然需要很多帮助。
为了帮助更好地理解我想要完成的工作,让我解释一下。我希望在页面上有两个文本字段和一个提交按钮。我们将这些文本字段称为$var1 和$var2。我希望用户填写两个文本字段,点击提交,然后将命令提交到远程服务器,如下所示:
# [root@server] $var1 /home/$var2.sh
现在我离我需要的地方很近,但以下是我自己编译的(非工作)代码,并正在寻找使其工作或改进的方法。此外,我意识到通过 PHP 脚本连接到远程服务器并以 root 身份运行命令并不是一个好主意。但这纯粹是为了开发/测试而没有生产。我只是想让自己熟悉这个过程。无论如何,这就是我所拥有的:
<?php
$connection = ssh2_connect('192.168.1.1', 22);
ssh2_auth_password($connection, 'root', 'password');
if (isset($_POST['button']))
{
$stream = ssh2_exec($connection, 'touch /root/test/test.txt');
}
?>
<html>
<body>
<form method="post">
<p>
<button name="button">Touch</button>
</p>
</form>
</body>
再一次,我确信上面的代码对于开发人员来说看起来很糟糕而且完全不正确,但正如我所说,我是 PHP 新手,所以这只是我自己尽力而为。
话虽如此,如果有人有任何类型的见解、有用的链接、提示,任何东西 - 将不胜感激!
【问题讨论】:
-
忘记整个 SSH 组件。你还没有接近那个阶段。您需要学习如何构建 HTML 表单,如何将字段放入该表单,将该表单提交到服务器,然后让服务器处理该表单。一旦你到了那个阶段,你的
$var1和$var2的东西就变得微不足道了。 -
你的代码还不错。它可能行不通,但写得还不错。我必须给你写这篇文章的道具。不应允许某些发帖人使用计算机。