我想为自动化测试工具制作一个GUI,目前在CLI中,我们需要将其转换为ig GUI,现在我面临的问题是我已经选择了HTML,CSS,JS作为前端和PHP作为后端,所以你们中的任何一个都可以建议我如何登录服务器, 哪个有一些IP?或者只是如何使用PHP代码登录到Linux服务器?
您可以使用 "Secure Shell2" PHP 模块通过 SSH 打开连接。
https://php.net/manual/en/book.ssh2.php
打开 SSH 连接(主机名 = 远程计算机的 IP 或网络名称)
$connection = ssh2_connect("主机名", 22);
通过登录名/密码进行身份验证
ssh2_auth_password($connection,"用户名","密码");
然后执行命令:
在远程计算机上执行 shell 命令(例如。'php -v' 知道 PHP 版本)
$stream = ssh2_exec($connection, 'php -v');
将结果从远程计算机读取到本地计算机
stream_set_blocking($stream,真);
$stream_out = ssh2_fetch_stream($stream, SSH2_STREAM_STDIO);
在本地计算机中打印结果
echo stream_get_contents($stream_out);
libssh2 扩展是一个 PITA。难以安装和使用。我的建议。使用 phpseclib。例:
<?php
include('Net/SSH2.php');
$ssh = new Net_SSH2('hostname', 22);
if (!$ssh->login('username', 'password')) {
exit('Login Failed');
}
echo $ssh->exec('php -v');
?>
使用PHP,您无法登录服务器,因为您只运行php脚本,但实际上您不是执行操作的用户。也就是说,有一个用户为php脚本设置。每次您发送请求以获取 php 文件时,用户都会运行脚本并发送结果。
如果你想从你的服务器输出数据,你必须通过php访问这些数据。然后你可以打开这些PHP文件作为网站的一部分。
您不需要从 PHP 登录到服务器,但是如果您的 Web 服务器在您尝试控制的同一服务器上运行,则可以轻松地从 PHP 执行 shell 命令和脚本。shell_exec
请注意授予命令和脚本的权限。
如何使用phpseclib执行"service bind9 restart"。代码为:
<?php include('Net/SSH2.php');
$ssh = new Net_SSH2('xxxx');
if (!$ssh->login('xx', 'xxx')) {
exit('Login Failed');
}
echo $ssh->exec('service bind9 restart');
?>
输出:绑定9:无法识别的服务
谢谢