手动安装 phpseclib 的 SFTP 命名空间

问题描述

我正在尝试通过手动安装使用 SFTP (PHPseclib) 进行连接。那是我第一次使用命名空间,所以我不知道我在做什么是我必须的方式。

我确实从 GitHub 下载了 PHPseclib 作为 ZIP 并将其放入 /home/libs_web/PHP/class/PHPseclib3

之后我使用了这个代码(只是作为例子):

require('/home/libs_web/PHP/class/PHPseclib3/Net/SFTP.PHP');
use PHPseclib3\Net\SFTP;

$sftp = new SFTP('localhost');
$sftp->login('username','password');

正如这里提到的,但在顶部有一个包含:https://phpseclib.com/docs/sftp

这是我的错误:致命错误:未捕获的错误:在 /home/libs_web/PHP/class/PHPseclib3/Net/SFTP.PHP:52 中找不到类 'PHPseclib3\Net\SSH2'

我的命名空间似乎无法正常工作。我不使用自动加载器、作曲家,并尝试将工作目录设置为 /home/libs_web/PHP/class/PHPseclib3/ & /home/libs_web/PHP/class/。

不知道该怎么办了。如果我包含文件 /Net/SSH2.PHP,我会遇到另一个关于另一个文件错误。我认为这不是正确的工作方式。

你能提供一些帮助吗?

解决方法

phpseclib3 最好与 Composer 一起安装。例如。在 CLI 上执行 composer init; composer require phpseclib/phpseclib:~3.0。您还可以将 require __DIR__ . '/vendor/autoload.php'; 放在文件的顶部

如果你想做一些事情,比如让你的源代码可供人们下载并使其在共享主机上工作,如果 CLI 访问可能不可用,我猜你可以做 Composer,然后自己上传 vendor/ 目录或包括它与您的 zip 文件或其他任何东西。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...