ssh2_connect 在 debian 上未定义

ssh2_connect is undefined on debian

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

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

但是当我 运行 一个带有 ssh2_connect() 调用的 php 脚本时,它不能在 2 个服务器上工作,但它在另一个服务器上工作。

我有错误:"call to undefined function ssh2_connect()."

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

在 Debian 和 EL 等打包发行版中,PHP 的 "non-core" 部分单独打包。在 Debian 风格中,您必须安装 php5-ssh2 软件包。

sudo apt-get install php5-ssh2

我只使用 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