我正在嘗試將phpseclib 2.0與我的應用程序集成在一起,以便與PHP7.0兼容。我以前有過使用PHP5的phpseclib,但是在我的PHP7.0機器上出現了一堆錯誤,提示更新了phpseclib。CodeIgniter上沒有作曲器的phpseclib 2.0,有關ParagonIE的錯誤
我想完全不使用作曲家,因爲我不想依靠人來安裝Composer,所以我從phpseclib的composer.json上運行了本地php composer.phar dump-autoload -o
,以生成所需的autoload.php並上傳到我的網絡服務器。
這裏是我的文件設置:
/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 \Composer\Autoload\ClassLoader();
$loader->addPsr4('phpseclib\\', __DIR__ . '/third_party/phpseclib');
$loader->register();
// Note $ip, $port, $user, $pass called from a config file separately.
$this->ssh_conn = new \phpseclib\Net\SSH2($ip, $port);
$this->sftp_conn = new \phpseclib\Net\SFTP($ip, $port);
$this->ssh_conn->login($user, $pass);
加載頁面給我一個錯誤:
Type: Error
Message: Class 'ParagonIE\ConstantTime\Hex' 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 功能:初始化
文件:/無功/網絡/的public_html /應用/ THIRD_PARTY /phpseclib/Math/BigInteger/Engines/PHP.php 線:92 功能:__construct
文件:/var/www/public_html/application/third_party/phpseclib/Math/BigInteger.php 線:151 功能:__construct
File:/ var/www/public_html/application/third_p附庸風雅/ phpseclib /網絡/ 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 功能:連接
文件:/無功/網絡/的public_html /應用/ THIRD_PARTY/phpseclib/Net/SSH2.php Line:2110 Function:call_user_f unc_array
任何幫助表示讚賞。
您是否上傳供應商文件夾中的更改? – fire
在我本地運行'php composer.phar dump-autoload -o'後,你的意思是上傳更改是什麼?如果是這樣,是的。如果沒有,那麼我不知道你的意思。 – Jguy