NET/SSH2.php Fehler nach Update auf 5.0

Hallo Community,

nach dem Update auf die 5.0 sind meine Skripte die per ssh andere systeme Steuern down. Folgender Fehler wird mir angezeigt:

PHP-Error-Unknown Error: Methods with the same name as their class will not be constructors in a future version of PHP; Net_SSH2 has a deprecated constructor
Error in Script /var/lib/symcon/scripts/Net/SSH2.php on Line 194Abort Processing during Fatal-Error: Methods with the same name as their class will not be constructors in a future version of PHP; Net_SSH2 has a deprecated constructor
Error in Script /var/lib/symcon/scripts/Net/SSH2.php on Line 194

Das ganze läuft auf einem Raspberry mit 9.4 Stretch unter Kernel 4.9.35-v7+

Das ist wahrscheinlich nur eine Kleinigkeit, ich finde es aber leider nicht,

greetings Rüdiger

Schau dir mal den Konstruktor an in der Klasse. Der hat wahrscheinlich den Namen der Klasse, muss aber seit PHP 7.x ein __construct() sein.

Schau mal hier: PHP: Deprecated features in PHP 7.0.x - Manual

paresy

Einfacher ist es, einfach diese Library neu aus dem Netz zu laden.
Da dieser Fehler alle enthaltenden Klassen betrifft (und schon lange gefixt wurde).

Michael

Vielen Dank für die schnellen Antworten, ich habe die lib getauscht und sollte nun weiter kommen,

greetings Rüdiger

Hatte das gleiche Problem.

Hab ewig nach der neuen Lib gesucht. Wer ähnliche Probleme beim Finden hat, hier der Download: net_php.zip (268 KB)

Da ist aber keine LIB drin

ich hab alles entpackt und ins Skriptenverzeichnis rein. Hat bei mir funktioniert.

Quelle:
phpseclib: pure PHP implementations of SSH, SFTP, RSA and X.509
Sollte auch in den Scripten drin stehen.
Michael

Da sind nur PHP Dateien.

Werde ich mal versuchen

Ja das ist ja auch nur PHP.
Was sollte es auch sonst sein, bei einer ‚pure php library‘
Michael

Sorry dann hab ich das falsch interpretiert. Dachte es wäre ine *.lib Datei.
Wäre es nicht besser wie früher eine DLL zu habe?

Wie wie früher???
Ich glaube du verwechselt da etwas.
Diese Library war immer reines PHP.
Was du meinst sind z.b. PHP Erweiterungen; diese haben hiermit nix zu tun und laufen auch ausschließlich unter Windows.
Michael

Dank für die Info.
Dann Asch auf mein Haupt, total in falsch Spur gelaufen

Hi Nall,

Scripte an die richtige stelle und funkt auch bei mir.

Nochmals Danke für Info und auf den richtigen Weg gebracht.

ich habe die Lib eingespielt, erhalte aber beim Aufrufen von

$ssh = new Net_SSH2('192.168.123.10');

folgende Fehlermeldungen:

Warning: include_once(Crypt/Base.php): failed to open stream: No such file or directory in C:\IP-Symcon\scripts\Net\SSH2.php on line 956

Warning: include_once(): Failed opening ‚Crypt/Base.php‘ for inclusion (include_path=’.;C:\php\pear’) in C:\IP-Symcon\scripts\Net\SSH2.php on line 956

Fatal error: Uncaught Error: Call to undefined function phpseclib_resolve_include_path() in C:\IP-Symcon\scripts\Net\SSH2.php:1363
Stack trace:
#0 C:\IP-Symcon\scripts\Net\SSH2.php(1255): Net_SSH2->_key_exchange()
#1 C:\IP-Symcon\scripts\Net\SSH2.php(2210): Net_SSH2->_connect()
#2 C:\IP-Symcon\scripts\Net\SSH2.php(2194): Net_SSH2->_login(‚user‘, ‚StrengGeheim!’)
#3 C:\IP-Symcon\scripts\12504.ips.php(35): Net_SSH2->login(‚user‘, 'StrengGeheim!
‘)
#4 {main}
thrown in C:\IP-Symcon\scripts\Net\SSH2.php on line 1363
Abort Processing during Fatal-Error: Uncaught Error: Call to undefined function phpseclib_resolve_include_path() in C:\IP-Symcon\scripts\Net\SSH2.php:1363
Stack trace:
#0 C:\IP-Symcon\scripts\Net\SSH2.php(1255): Net_SSH2->_key_exchange()
#1 C:\IP-Symcon\scripts\Net\SSH2.php(2210): Net_SSH2->_connect()
#2 C:\IP-Symcon\scripts\Net\SSH2.php(2194): Net_SSH2->_login(‚user‘, ‚StrengGeheim!’)
#3 C:\IP-Symcon\scripts\12504.ips.php(35): Net_SSH2->login(‚user‘, 'StrengGeheim!
‘)
#4 {main}
thrown
Error in Script C:\IP-Symcon\scripts\Net\SSH2.php on Line 1363

kann damit jemand was anfangen? Bin etwas überfordert…

Gruß, Hugo

Wo liegt „Crypt/Base.php“?

Grüße,
Kai

im C:\IP-Symcon\scripts\phpseclib\Crypt

Jetzt schau mal wo die SSH2.php liegt.
Dann solltest du erkennen, dass er die Base.php nicht finden kann. Laut Log liegt es in unterschiedlichen Verzeichnissen.

Grüße,
Kai

Gesendet von iPhone mit Tapatalk

die SSH2.php liegt in C:\IP-Symcon\scripts\phpseclib\Net und in C:\IP-Symcon\scripts\Net

Wo musste sie liegen bzw. wo kann ich den korrekten Pfad definieren?

Gruss, Hugo

Wieso an zwei Stellen?
Die Datei musst du mit relativen Pfaden in dein Script einbinden.

Grüße,
Kai

Gesendet von iPhone mit Tapatalk