鸿 网 互 联 www.68idc.cn

php - windows下php-ssh2扩展的安装及使用(附样例)

来源:互联网 作者:佚名 时间:2017-11-03 13:58
安装步骤(以windows2008系统,IIS服务器为例) 1. 下载 php extension ssh2 下载地址 http://windows.php.net/downloads/pecl/releases/ssh2/0.12/ 根据自己PHP的版本去下载,其中ts表示线程安全,nts表示不安全。(可以使用phpinfo()查看需要哪一个,Threa
安装步骤(以windows2008系统,IIS服务器为例)
 
1. 下载 php extension ssh2
下载地址 http://windows.php.net/downloads/pecl/releases/ssh2/0.12/
 
根据自己PHP的版本去下载,其中ts表示线程安全,nts表示不安全。(可以使用phpinfo()查看需要哪一个,Thread Safety项是enabled表示线程安全)
我使用的是线程不安全的,所以下载的是php_ssh2-0.12-5.5-nts-vc11-x64.zip
 
2. 解压完后,会有三个文件,libssh2.dll、php_ssh.dll、php_ssh2.pdb。
 
3. 将 php_ssh.dll、php_ssh2.pdb 放到你的 php 扩展目录下 php/ext/ 下。
 
4. 将libssh2.dll 复制到 c:/windows/system32 和 c:/windows/syswow64 各一份
 
5. php.ini中加入 extension=php_ssh2.dll
 
6. 重启IIS,即可使用php执行ssh连接操作了。

重要提示:如果您的网站IIS网站应用程序池是32位,笔者这里用的是ASP+PHP混合版本的程序

下64位的SSH2_PHP扩展经测试无法使用,最后下载32位的解决  


点击下载 php_ssh2-0.12-5.4-nts-vc9-x86.zip

注意:有必要查看一下php_ssh2.dll是否可用,完成第3、4、5步后,到php目录下打开php.exe,若无效会报错

查看phpinfo(),是否有显示php_ssh2扩展加载成功。

 



附远程连接LINUX代码 

<?

    $host='127.0.0.1';//被控制的linux的ip  
      
    $user='root';//用户名  
      
    $passwd='123456';//密码  
      
    // 链接远程服务器  
      
    $connection = ssh2_connect($host, 22);  
      
    if (!$connection) die('connection to '.$host.':22 failed');  
      
    echo 'connection OK<br/>';  
      
    // 获取验证方式并打印  
      
    $auth_methods = ssh2_auth_none($connection, $user);  
      
    print_r( $auth_methods.'<br/>');  
      
    if (in_array('password', $auth_methods ))  
    {  
      
        // 通过password方式登录远程服务器  
      
        if (ssh2_auth_password($connection, $user, $passwd))  
      
        {  
      
            echo $user.' login OK<br/>';  
      
            $stream = ssh2_exec($connection, "pwd"); // 执行php  
      
            stream_set_blocking($stream, true); // 获取执行pwd后的内容  
      
             if ($stream === FALSE) die("pwd failed");  
      
            echo 'pwd: '.stream_get_contents($stream).'<br/>';  
      
        }  
      
        else  
      
        {  
      
            die( $user.' login Failed<br/>');  
      
        }  
      
    }  

?>



=================================================================


第二个测试代码 


<?php
$connection = ssh2_connect('192.168.255.128', 22);
ssh2_auth_password($connection, 'root', '123456');
ssh2_scp_send($connection, 'd:/tmp/test.txt', '/tmp/test.txt', 0644);
网友评论
<