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
Mir ist auch komisch vorgekommen, dass 2 Pfade existieren.
Ich gehe jetzt aber von dem
C:\IP-Symcon\scripts
et Pfad aus und rufe das Script so auf
include('Net/SFTP.php');
$ssh = new Net_SSH2('192.168.123.10');
if (!$ssh->login('user', '12345')) {
exit('Login Failed');
}
Neue Fehlermeldung ist
Fatal error: Uncaught Error: Class ‚Math_BigInteger‘ not found in C:\IP-Symcon\scripts\Net\SSH2.php:1659
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‘, ‚12345‘)
#3 C:\IP-Symcon\scripts\41857.ips.php(10): Net_SSH2->login(‚user‘, ‚12345‘)
#4 {main}
thrown in C:\IP-Symcon\scripts\Net\SSH2.php on line 1659
Abort Processing during Fatal-Error: Uncaught Error: Class ‚Math_BigInteger‘ not found in C:\IP-Symcon\scripts\Net\SSH2.php:1659
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‘, ‚12345‘)
#3 C:\IP-Symcon\scripts\41857.ips.php(10): Net_SSH2->login(‚user‘, ‚12345‘)
#4 {main}
thrown
Error in Script C:\IP-Symcon\scripts\Net\SSH2.php on Line 1659
In der Zeile 1659 von SSH2.php steht
$g = new Math_BigInteger(2);
Die Datei C:\IP-Symcon\scripts\math\BigInteger.php existiert.
Soll ich versuchen net_php komplett neu einzubinden?
Vielleicht hilft dir ein Beispiel.
Schau mal hier: IPS-Tvheadend/IPS-Tvheadend/libs at master · Schnittcher/IPS-Tvheadend · GitHub
Und hier binde ich es dann ein: IPS-Tvheadend/module.php at master · Schnittcher/IPS-Tvheadend · GitHub
Schau mal in die SSH2.php rein im Constructor siehst du dort, wie die Klasse eingebunden wird.
Was steht da? Ich denke irgendwas passt bei dir mit den Pfaden nicht.
Grüße,
Kai
dein Beispiel hats gebracht, vielen Dank.
Ich hatte beide Pfade miteinander vermischt und weiter oben ein Include auf einen alten Pfad gesetzt. Jetzt funktioniert es.
Vielen Dank für die Hilfe!
LG
Hugo
Der Thread ist zwar älter… ich hoffe mir kann jemand helfen.
Ich will künftig mein IPS System auf Windows umziehen und teste im Moment auf einem frischen IPS SSH. Bei der alten Installation
auf RPI waren alle PHP’s also ssh2, bininteger, usw direkt im Script Verzeichnis, also eine Menge Dateien… ich muss zugeben, ich kenne mich mit den Includes nicht richtig aus., aber es ist gelaufen…
Nun habe ich folgendes gemacht:
phpseclib3 frisch runtergeladen und unter scripts in ein libs Verzeichnis gepackt:
C:\ProgramData\Symcon\scripts\libs
dort liegen die ganzen Verzeichnisse mit den PHP Libs.
eingebunden habe ich es mit u.a.Include… danach kommt aber beim Ausführen die u.a. Fehlermeldung mit einer Klasse, auch das sagt mir leider nichts…
Bitte um kurze Hilfestellung, ich habe im Forum viel gelesen komme aber nicht auf die Lösung.
<?php
echo IPS_GetKernelDir();
include(IPS_GetKernelDir().'scripts\libs\phpseclib3\Net\SSH2.php');
$ssh = new NET_SSH2('192.168.1.72');
if (!$ssh->login('user', 'pw')) {
exit('Login Failed');
}
Es kommt folgende Fehlermeldung nach dem Ausführen:
C:\ProgramData\Symcon\
Fatal error: Uncaught Error: Class 'NET_SSH2' not found in C:\ProgramData\Symcon\scripts\41565.ips.php:6
Stack trace:
#0 {main}
thrown in C:\ProgramData\Symcon\scripts\41565.ips.php on line 6
Moin,
hier http://phpseclib.sourceforge.net/ wird auch noch die alte 1.0.19 angeboten Ich habe noch die 1.0.18 im Einsatz die ebenfalls problemlos funktioniert. Diese Versionen müssen einfach im scripts Verzeichnis entpackt werden.
@paresy Gibt es aus eurer Sicht einen Grund auf die V 3 zu wechseln?
Gruß
Hans
Ich wüsste keinen Grund wenn alles gut läuft.
paresy
Moin,
danke paresy. Ich habe gerade auf die 1.0.19 ein Update gemacht und alles funktioniert bei mir weiterhin problemlos
@juwo1811 Die Einbindung unter Win ist dann
include('Net/SSH2.php');
Gruß
Hans
EDIT2
Alles geht, danke… keine weiteren Fragen, Einbindung des Befehls in die autoload.php brachte das gewünschte Ergebnis.
EDIT
Habe die Vers. 1.0.19 geladen und das Verz. phpseclib in das Scripte Verz. kopiert, wenn ich diesen Befehl am Anfang des Scriptes setze
set_include_path(get_include_path() . PATH_SEPARATOR . __DIR__ . '\phpseclib');
findet er alle Bibliotheken und es funktioniert. Danke !!
Kann ich diesen Befehl irgendwo zentral hinterlegen, damit ich nicht in jedem PHP Script das SSH nutzt das einbinden muss?
@paresy
Danke für den Hinweis, ich dachte wenn ich alles Neu mache dann auch die neuste Version… mhm dann versuche ich das mal mit der alten Version
@PC Oldie
die phpseclib ist ja eigentlich im Ordner phpseclib, muss ich dann alle Ordner aus diesem in das Script Verzeichnis kopieren, also Math, Net, Crypt etc… ??
Ich danke Euch für die Hilfe… man muss wohl nicht immer alles NEU haben:D
Moin,
ich habe bei allen Versionen immer alle Verzeichnisse und die beiden Dateien direkt im Verzeichnis scripts liegen. Seit Jahren keine Probleme damit.
Gruß
Hans
Moin, alles klar, es geht mit dem o.g Kommando und Einbindung in das _autoload.php, damit habe ich im Scripte Verzeichnis nur den Ordner phpseclib, ist für micht aufgeräumter
Vielen Dank für Deine Hilfe Hans.
Gruß
Jürgen
Moin Jürgen,
das werde ich auch noch so machen, da ich diverse Funktionen in die __autoinclude.php legen möchte. Siehe auch hier https://www.symcon.de/forum/threads/45439-Eigene-Funktionen-global-in-IPS-verwendbar-machen falls für dich interessant
Gruß
Hans