繁体   English   中英

phpseclib 2.0 无法使用 Composer 创建自动加载

[英]phpseclib 2.0 can not use Composer to create autoload

我在一家公司工作,我们的服务器和计算机被锁定得比……想象的更严密。 这意味着我不能在没有大量文书工作的情况下使用 composer 或安装它。 我是一名开发人员,通常用 JS 而不是 php 编程,但对于这个项目,我需要从智能卡上获取 CAC X509 信息。 我已经花了大约 4 个小时试图让 phpseclib 工作。 请注意,我几乎不懂 php。 我正在遵循 github 和网站的说明,主要是我已经下载并解压缩了 2.0 的文件并将它们放在我的目录中,我正在遵循网站上的示例,例如http://phpseclib.sourceforge.net/x509/ 2.0/examples.html#getpublickey 但是当我这样做时:

$x509 = new X509();
$x509->loadX509($_SERVER['SSL_CLIENT_CERT']);
echo $x509->getPublicKey();

我收到错误:致命错误:在...中找不到类“X509”

我还尝试了其他事情,例如将目录包含到文件中,例如:

$x509 = new phpseclib\File\X509();
$x509->loadX509($_SERVER['SSL_CLIENT_CERT']);
echo $x509->getPublicKey();

和(新的 phpseclib_File_X509)得到错误:致命错误:Class 'phpseclib\\File\\X509' not found in ...

请帮忙! 我从来没有做过自动加载,我觉得这就是问题所在? 就像文件没有加载一样? 我也在不同的时间完成了以下两项工作,但都无济于事。

include'phpseclib/File/X509.php';

use phpseclib\File\X509;

当我将错误日志放入 X509 进行检查时,我也发现 ASN1 未找到。

编辑:也有助于知道我的 php 版本是 5.5.26

你需要遵循标准的Composer 项目设置说明,拉里。 之后,您按照phpseclib和 Composer 上的说明进行操作

composer require phpseclib/phpseclib:~2.0

从根项目目录中。 之后,您将不需要使用 Sourceforge 站点上示例中的包含/要求,因为这些示例不使用 Composer 的自动加载功能 - 您可以按照示例使用它。

您可以使用最新的 1.0.x 版本,它根本不需要自动加载器(并且仍在维护):

http://sourceforge.net/projects/phpseclib/files/phpseclib1.0.18.zip/download

或者,如果您提供自己的自动加载器,您/可以/使用最新的 2.0.x 版本。 http://phpseclib.sourceforge.net/2.0.html演示了这个:

<?php
// autoload.php's content can be copy / pasted from https://github.com/composer/composer/blob/master/src/Composer/Autoload/ClassLoader.php
include 'autoload.php';

$loader = new \Composer\Autoload\ClassLoader();
$loader->addPsr4('phpseclib\\', __DIR__ . '/path/to/phpseclib2.0');
$loader->register();

use phpseclib\Crypt\RSA;
use phpseclib\Net\SSH2;

$key = new RSA();
$key->loadKey(file_get_contents('private-key.txt'));

// Domain can be an IP too
$ssh = new SSH2('www.domain.tld');
if (!$ssh->login('username', $key)) {
    exit('Login Failed');
}

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

这种方法使您可以使用 2.0.x,而无需在 CLI 上执行 composer require phpseclib/phpseclib。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM