2017-10-09 6 views
1

J'essaie d'intégrer phpseclib 2.0 avec mon application pour la compatibilité avec PHP7.0. J'avais précédemment phpseclib fonctionnant avec PHP5 mais un tas d'erreurs sur mon ordinateur PHP7.0 a incité la mise à jour de phpseclib. J'essaye de ne pas utiliser complètement le compositeur car je ne veux pas dépendre de quelqu'un pour que Composer soit installé, donc j'ai couru un php composer.phar dump-autoload -o local sur mon compositeur.json depuis phpseclib pour générer le fichier autoload.php requis et le télécharger à mon serveur web.phpseclib 2.0 sur CodeIgniter sans compositeur, erreur sur ParagonIE

Voici ma configuration du fichier:

/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 

Dans l'un de mes modèles dans lesquels j'ai besoin SSH2 et SFTP je donne les résultats suivants:

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); 

chargement de la page me donne une erreur:

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 

Backtrace:

fichier: /var/www/public_html/application/third_party/phpseclib/Math/BigInteger/Engines/Engine.php ligne: 127 Fonction: initialiser

fichier:/var/www/public_html/application/third_party /phpseclib/Math/BigInteger/Engines/PHP.php ligne: 92 Fonction: __construct

fichier: /var/www/public_html/application/third_party/phpseclib/Math/BigInteger.php ligne: 151 Fonction : __construct

Fichier:/var/www/public_html/application/third_p arty/phpseclib/net/SSH2.php Ligne: 1670 Fonction: __construct

fichier: /var/www/public_html/application/third_party/phpseclib/Net/SSH2.php Ligne: 1248 Fonction: key_exchange

fichier: /var/www/public_html/application/third_party/phpseclib/Net/SSH2.php ligne: 2126 Fonction: connecter

fichier:/var/www/public_html/application/third_party/phpseclib/Net/SSH2.php Ligne: 2110 Fonction: call_user_f unc_array

Toute aide est appréciée.

+0

Avez-vous télécharger les modifications dans le dossier du fournisseur? – fire

+0

Que voulez-vous dire des changements de téléchargement, après avoir couru '' php composer.phar dump-autoload -o' localement? Si oui, oui. Sinon, je ne sais pas ce que tu veux dire. – Jguy

Répondre

0

On dirait que vous utilisez la branche principale de phpseclib - pas la branche 2.0.

La dernière version 2.0 n'utilise pas ParagoneIE \ ConstantTime \ Hex. À tout le moins ce n'est pas dans le composer.json:

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

paragonie/constant_time_encoding est, cependant, le compositeur de la branche principale.JSON:

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

+0

Ah, ça pourrait très bien être ça. Je viens de copier sur les fichiers que j'avais. – Jguy