【问题标题】:SFTP Namespace with phpseclib installed manually手动安装 phpseclib 的 SFTP 命名空间
【发布时间】:2021-06-20 05:36:06
【问题描述】:

我正在尝试使用手动安装的 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'

我的命名空间似乎无法正常工作。我不使用autoloader、composer,并尝试将工作目录设置为/home/libs_web/php/class/phpseclib3/ & /home/libs_web/php/class/。

不知道该怎么做。如果我包含文件 /Net/SSH2.php 我将有另一个关于另一个文件的错误。我认为这不是正确的工作方式。

您能提供一些帮助吗?

【问题讨论】:

    标签: composer-php phpseclib


    【解决方案1】:

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

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

    【讨论】:

    • 如果我们不想使用 composer 有什么解决办法吗?我想下载该库并使用它。我不喜欢以不受控制的方式下载和安装东西的自动化系统。
    • @NetVicious - 你可以在本地运行composer,生成一个供应商目录和一个autoload.php,然后把它放到你的项目中。因此,您仍然需要运行 Composer,而不是 everyone 在检查项目时必须运行 Composer,它只会运行 一次,您可以验证 Composer 在有一次你确实运行过它。
    • 感谢您的评论。我回去了,我使用了 phpseclib v2,它不需要作曲家,适合那些不想像我们很久以前那样与依赖关系作战的人。
    猜你喜欢
    • 2017-04-23
    • 2015-05-21
    • 2023-03-07
    • 2018-04-27
    • 1970-01-01
    • 2020-02-17
    • 2022-10-08
    • 2013-12-06
    • 1970-01-01
    相关资源
    最近更新 更多