首页 网页模板教程 网站网页教程 在网页中执行shell脚本实现远程自动搭建
0赞
赞赏
手机版
扫码打开手机版
把文字装进口袋

在网页中执行shell脚本实现远程自动搭建

向往草原403  2023-11-10 16:33:35
近期不少童靴倒腾在网站上面 直接一键搭建,基本都是利用php_ssh2组件 实现的,这里个大家分享下。
首先要安装php_ssh2组件,linux中centos7下有ssh2源,直接安装。window下则需要自行下载dll组件加载,具体方法自行搜索。

安装完毕后就可以在PHP写执行shell脚本的程序了
  1. $ssh_user='root';        //登陆linux的ssh2用户名
  2. $ssh_pwd='********';      //登陆linux的密码
  3. $ssh_port='22';                          //端口号22
  4. $ssh_host='192.168.200.128';        //服务器IP地址
  5.   
  6. //先测试拓展是否安装并开启
  7. if(!function_exists("ssh2_connect")){
  8.         exit('SSH扩展没有安装或者没有安装成功');
  9.     }
  10.   
  11. //建立ssh2连接
  12. $ssh2 = ssh2_connect($ssh_host, $ssh_port);
  13.     if(!$ssh2){
  14.         exit('连接服务器失败');
  15.     }else{
  16.         echo '成功连接上了服务器';
  17.     }
  18.   
  19. //连接成功后进行密码验证,没验证无法进行其他操作。
  20. if(!ssh2_auth_password( $ssh2, $ssh_user,  $ssh_pwd )){
  21.         return false;
  22.     }
复制代码
成功连接,并且通过密码验证后就可以进行shell脚本的操作了,下面来一些简单的,例如建立一个文件夹。
  1. $e="mkdir -m 777 /var/www/html/35bokecom";   //shell脚本语句
  2. $stak=ssh2_exec($ssh2, $e);            //通过ssh2_exec执行语句
复制代码
命令执行后那想要知道执行结果呢,我们可以通过下面方式获取命令执行结果
  1. stream_set_blocking($stak, true);

  2. $output = stream_get_contents($stak);

  3. fclose($stak);
复制代码
此时,获取string类型的output。

PS:如果你的服务器启用了sshkey那就使用下面方式的登陆
  1. $connection=ssh2_connect($ssh_host,$ssh_port);

  2. if(ssh2_auth_pubkey_file($connection, 'root', '/home/id_rsa.pub', '/home/id_rsa', 'secret'))

  3. {

  4.     echo "Public Key Authentication Successful\n";

  5. } else {   

  6.     die('Public Key Authentication Failed');

  7. }
复制代码


使用道具 举报

您需要登录后才可以回帖 立即登录
支持作者 感谢分享
2023-11-11 20:58:43

返回顶部