2016-04-17 9 views
0

Ich versuche, in einem Solaris-Server mithilfe von PHP ssh. Ich habe ein ssh2.php Paket von this linkKann abstrakte Klasse nicht instanziieren Net_SSH2

heruntergeladen und es in meinen Code eingeschlossen. Mein Code folgt

<?php 
include 'D:/MySoftwares/xampp/xampp/php/PEAR/Net_SSH2-master/Net/SSH2.php'; 

$ssh = new Net_SSH2('ip'); 
if (!$ssh->login('user', 'pass')) { 
exit('Login Failed'); 
} 

echo $ssh->exec('pwd'); 
echo $ssh->exec('ls -ltrh'); 
?> 

Jetzt bin ich bekommen "Fatal error: Kann nicht abstrakte Klasse Net_SSH2 in D instanziiert: \ MySoftwares \ xampp \ xampp \ htdocs \ connectdas \ contodas.php in Zeile 4". Ich bin ein Linux-Mensch und weiß wenig über PHP-Klassen. Kann mir jemand helfen?

Antwort

0

Sie können keine Instanz der abstrakten Klasse

http://php.net/manual/en/language.oop5.abstract.php

für weitere Details zu sehen erstellen

Wie ich in Net_SSH2 sehen Sie Fabrik Methode verwenden, aber Sie sollten Kind-Klasse erstellen und alle abstrakten Methoden definieren von Net_SSH2

oder verwenden bestehende Klasse von lib

$ssh = Net_SSH2::factory('OpenSSH', $options); 
0

Vielen Dank für Ihre Hilfe, Herr! @Dolbik. Ich habe einen anderen Weg gefunden. Es war schlicht und einfach. Ich habe ein anderes Net-Paket heruntergeladen, das eine einfachere Klassendefinition von Net_SSH2 hat und es einfach in meinen Code aufgenommen hat. Für Ihre Bequemlichkeit biete ich das Paket Link hier - LINK

Verwandte Themen