2017-10-09 2 views
1

phpseclib 2.0をPHP7.0との互換性のために私のアプリケーションと統合しようとしています。以前私はphpseclibをPHP5で動作させていましたが、PHP7.0マシンでエラーの束がphpseclibの更新を促しました。phpseclib 2.0 for Composer、ParagonIEについてのエラー

Composerをインストールする人に依存したくないので、私は作者を完全に使用しないようにしています。したがって、必要なautoload.phpを生成するためにphpseclibのcomposer.jsonにローカルphp composer.phar dump-autoload -oを実行してアップロードしました私のウェブサーバーに。ここで

は、私のファイルのセットアップです:私は、次のしているSSH2およびSFTPを必要としている私のモデルの一つで

/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 

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 機能:初期化

ファイル:の/ var/www /の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

ファイル:/ 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 機能:接続

ファイル:の/ var/www /のpublic_htmlの/アプリケーション/ THIRD_PARTY/phpseclib/Net/SSH2.php 行:2110 機能:call_user_f unc_array

何か助けていただければ幸いです。

+0

変更をベンダーのフォルダにアップロードしましたか? – fire

+0

'php composer.phar dump-autoload -o'をローカルに実行した後、アップロードの変更はどういう意味ですか?もしそうなら、はい。そうでなければ、私はあなたが何を意味するのか分からない。 – Jguy

答えて

0

あなたはphpseclibのマスターブランチを使っているようですが、2.0ブランチではありません。

最新の2.0リリースはParagoneIE \ ConstantTime \ Hexを使用していません。非常に少なくとも、それがcomposer.jsonではありません。

https://github.com/phpseclib/phpseclib/blob/2.0.6/composer.json

paragonie/constant_time_encodingはマスターブランチの作曲で、しかし、です。json:

https://github.com/phpseclib/phpseclib/blob/master/composer.json

+0

ああ、これは非常にうまくいくかもしれない。私は持っていたファイルをコピーしました.Oops。 – Jguy

関連する問題