phpseclib 2.0的安装过程不工作

phpseclib 2.0的安装过程不工作,php,phpseclib,Php,Phpseclib,安装phpseclib-2.0时,编写器似乎没有创建正确的目录结构 我正在尝试在生产linux服务器上安装phpseclib-2.0。我已在另一个服务器上安装了1.07,但希望将生产服务器升级到2.0。 我安装时遵循的步骤是: 1.)我将库下载并解压缩到phpseclib-2.0/ 2.)已将该文件夹复制到供应商/我的应用程序文件夹中 3.)cd给供应商/phpseclib-2.0 4.)执行编写器安装 由此产生的结构是 供应商-phpseclib-2.0 供应商-phpseclib-2.0-p

安装phpseclib-2.0时,编写器似乎没有创建正确的目录结构

我正在尝试在生产linux服务器上安装phpseclib-2.0。我已在另一个服务器上安装了1.07,但希望将生产服务器升级到2.0。
我安装时遵循的步骤是:
1.)我将库下载并解压缩到phpseclib-2.0/
2.)已将该文件夹复制到供应商/我的应用程序文件夹中
3.)cd给供应商/phpseclib-2.0
4.)执行编写器安装

由此产生的结构是 供应商-phpseclib-2.0
供应商-phpseclib-2.0-phpseclib(包括密码、文件、数学、网络、系统)
供应商-phpseclib-2.0-供应商(这是编写器和AUTLOAD结束的地方)

这是我用于测试的代码:

require __DIR__ . '/vendor/phpseclib-2.0/vendor/autoload.php';
use phpseclib\Net\SFTP;

$connection = ssh2_connect($FTP_URI, 22);
if (!$ssh->login(username, password)) {
    exit('Login Failed');
}

echo $ssh->exec('pwd');
echo $ssh->exec('ls -la');
我希望它能给我一个目录列表。

我得到的是:
PHP致命错误:调用未定义的函数ssh2\u connect()

注意,测试是使用:php-f sshtest.php运行的

谢谢你的帮助

$connection = ssh2_connect($FTP_URI, 22);
这在phpseclib中没有定义。这是PECL的ssh2扩展

以下是使用phpseclib时需要执行的操作:

require __DIR__ . '/vendor/phpseclib-2.0/vendor/autoload.php';
use phpseclib\Net\SFTP;

$connection = new SFTP($FTP_URI, 22);
if (!$ssh->login(username, password)) {
    exit('Login Failed');
}

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

我认为您可能还需要
使用phpseclib\Net\SSH2
此外,最好的安装实践是转到您的应用程序根目录并简单地运行
composer require phpseclib/phpseclib:~2.0
。这应该将phpseclib-2.0放在具有适当结构的根/供应商/目录中。它还更新根
composer.json
文件,以确保其他依赖项保持同步。然后您就可以
要求使用_DIR.'/vendor/autoload.php'谢谢。我在想少了什么东西。我做了更改并返回“未找到类'phpseclib\Net\SFTP'。由于很多被移植的代码已经使用了ssh2_连接协议,我想我要安装PECL ssh2扩展。希望这能解决问题。