用php / ssh2_connect解压缩有问题

时间:2015-03-09 14:20:42

标签: php ssh2-exec

我正在尝试将php与ssh2_connect结合使用,以便使用此脚本解压缩远程文件夹:

$connection = ssh2_connect($ipaddress, 22);

    if (!$connection) {
        throw new Exception("Could not connect to server.");
    }

    if (!ssh2_auth_password($connection, $username, $password)) {
        throw new Exception("Authentication failed!");
    }
    else {
        $unzip = "unzip $filename";
        //$unzip = "unzip $filename -d /home/upload/homes/folder/";
        if ( ($stream = ssh2_exec( $connection, $unzip ) ) ){
            $sftp = ssh2_sftp($connection);
            ssh2_sftp_unlink($sftp, $filename);
        }
    }

我的zip文件包含多个文件,但unzip函数只返回1个0kB的文件。 当我使用ssh登录时,我可以成功解压缩该文件。 有什么想法吗?

1 个答案:

答案 0 :(得分:1)

libssh2表现得很奇怪。你可能会更好运用phpseclib,一个纯PHP SSH2实现。例如

<?php
include('Net/SSH2.php');

$ssh = new Net_SSH2('www.domain.tld');
if (!$ssh->login('username', 'password')) {
    exit('Login Failed');
}

echo $ssh->exec("unzip $filename")
?>

如果这不起作用,您可以获取phpseclib日志并将其发布以进一步诊断。