我正在尝试将phpseclib 2.0与我的应用程序集成,以与PHP7.0兼容。我以前让phpseclib与PHP5一起工作,但我的PHP7.0机器上的一堆错误促使我更新了phpseclib。
我尽量不完全使用composer,因为我不想依赖别人安装composer,所以我在我的composer.json上从phpseclib运行了一个本地php composer.phar dump-autoload -o
来生成所需的autoload.php,并将其上传到我的Web服务器。
这是我的文件设置:
/application
/config
/controllers
/core
/errors
/helpers
/hooks
/language
/logs
/models
/third_party
/phpseclib
<phpseclib2.0 files here>
/vendor
/composer
/autoload_*.php
/ClassLoader.php
autoload.php
在我的一个模型中,我需要SSH2和SFTP,我有以下内容:
public function __construct() {
require_once(APPPATH . '/third_party/vendor/autoload.php');
$loader = new ComposerAutoloadClassLoader();
$loader->addPsr4('phpseclib\', __DIR__ . '/third_party/phpseclib');
$loader->register();
// Note $ip, $port, $user, $pass called from a config file separately.
$this->ssh_conn = new phpseclibNetSSH2($ip, $port);
$this->sftp_conn = new phpseclibNetSFTP($ip, $port);
$this->ssh_conn->login($user, $pass);
加载页面时出现错误:
Type: Error
Message: Class 'ParagonIEConstantTimeHex' not found
Filename: /var/www/public_html/application/third_party/phpseclib/Math/BigInteger/Engines/PHP.php
Line Number: 114
回溯:
文件:/var/www/public_html/application/third_party/phpseclib/Math/BigInteger/Engines/Engine.php线路:127功能:初始化
文件:/var/www/public_html/application/third_party/phpseclib/Math/BigInteger/Engines/PHP.PHP线路:92功能:__construct
文件:/var/www/public_html/application/third_party/phpseclib/Math/BigInteger.php线路:151功能:__construct
文件:/var/www/public_html/application/third_party/phpseclib/Net/SSH2.php线路:1670功能:__construct
文件:/var/www/public_html/application/third_party/phpseclib/Net/SSH2.php线路:1248函数:key_exchange
文件:/var/www/public_html/application/third_party/phpseclib/Net/SSH2.php线路:2126功能:连接
文件:/var/www/public_html/application/third_party/phpseclib/Net/SSH2.php线路:2110函数:call_user_func_array
如有任何协助,我们将不胜感激。
听起来您使用的是phpseclib的master分支,而不是2.0分支。
最新的2.0版本不使用ParagoneIE\ConstantTime\Hex。至少它不是composer.json:中的
https://github.com/phpseclib/phpseclib/blob/2.0.6/composer.json
然而,paragonie/content_time_encoding在master分支的composer.json:中
https://github.com/phpseclib/phpseclib/blob/master/composer.json