phpseclib 2.0无法使用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)得到错误: 致命错误:在...中找不到类“ phpseclib \ File \ X509”

请帮助!我从来没有做过自动加载,并且我感觉这是问题所在吗?好像文件没有加载?我也分别在下面做过这两项工作,但都无济于事。

include'phpseclib/File/X509.php';

use phpseclib\File\X509;

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

编辑:也将有助于了解我的php版本是5.5.26

diano1991 回答:phpseclib 2.0无法使用Composer创建自动加载

您需要遵循标准Composer project setup instructions,拉里。之后,通过

使用Composer遵循phpseclib上的说明
composer require phpseclib/phpseclib:~2.0

在根项目目录中。之后,您将不需要使用Sourceforge站点上的示例中的include / require,因为那些示例不使用Composer的自动加载功能-您可以按照this示例来使用它。

,

您可以使用最新的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需要phpseclib / phpseclib的操作。

本文链接:https://www.f2er.com/2585793.html

大家都在问