在debian上ssh2_connect未定义

时间:2015-02-05 14:11:48

标签: php debian libssh2

我在debian 6.0.8中有几个服务器,php版本为5.3.28-1~dotdeb.0。

我已经在每个上做了一个apt-get安装libssh2-php。 当你制作一个php -v时,我在每个列表中都有openssl和ssh2。 之后我已经重新启动了apache。

但是当我使用ssh2_connect()调用运行php脚本时,它不会在2台服务器上运行,但它可以在另一台服务器上运行。

我有错误:“调用未定义的函数ssh2_connect()。”

我不明白,debian版和php版是一样的。 你能帮助我吗 ? 感谢。

2 个答案:

答案 0 :(得分:1)

在像Debian和EL这样的打包发行版中,您可以单独打包PHP的“非核心”部分。在Debian风格中,您必须安装php5-ssh2包。

  

sudo apt-get install php5-ssh2

答案 1 :(得分:1)

我只使用phpseclib,一个纯PHP SSH实现。例如

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

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

echo $ssh->exec('pwd');
echo $ssh->exec('ls -la');
?>

phpseclib有a number of a advantages over libssh2。如果您愿意,也可以使用phpseclib来模拟libssh2函数。例如

https://github.com/phpseclib/libssh2-compatibility-layer