2015-05-13 15 views
6

ich heruntergeladen phpseclib-0.3.10 von http://phpseclib.sourceforge.net/"Segmentation fault", wenn phpseclib mit

Meine PHP-Version: PHP 5.2.4

OS: CentOS 6.6 Release

Wenn ich run following Ich erhalte "Segmentierungsfehler" an dieser Leitung $ssh->login('username', 'password')

Ich kann den Grund für dieses Problem nicht finden. Könnten Sie mir bitte helfen, den Grund dafür zu finden?

+1

Sie möchten dies vielleicht nicht hören, aber PHP 5.2 ist veraltet und wird nicht mehr unterstützt. Seither wurden viele, viele Korrekturen vorgenommen. man könnte den Segmentierungsfehler behoben haben. – Shi

Antwort

0

Meine Vermutung: entweder der Aufruf fsockopen() oder der Aufruf stream_select(). Du kannst es herausfinden, indem du die() 's in deinem Code an aufeinanderfolgenden Punkten innerhalb von login() und den darin genannten Funktionen ablegst.

es oben schauen ... login() ruft _login():

https://github.com/phpseclib/phpseclib/blob/0.3.10/phpseclib/Net/SSH2.php#L1801

_login() ruft _connect():

https://github.com/phpseclib/phpseclib/blob/0.3.10/phpseclib/Net/SSH2.php#L1817

zB. vor line 964 in Net/SSH2.php hinzufügen die('this far'). Wenn es "so weit" sagt, dann versuche es nachher hinzuzufügen. Wenn Sie einen seg-Fehler bekommen, wenn es danach ist, aber nicht vorher, bedeutet das wahrscheinlich, dass es die fsockopen ist, die daran schuld ist.

Und weiter so, bis Sie den Seg Fehler erhalten. Tun Sie eine vor und nach der Stream_Select und nur wo immer. Und dann poste die Zeile, auf der du es bekommst.

+0

Danke neubert für die Antwort. Ich habe Stack-Trace Stack und ich sehe, dass folgende Zeilen segmentieren Fehler Math_BigInteger-> modPow() SSH2.php: 1405 openssl_public_encrypt() BigInteger.php: 1697 –

+0

Können Sie einen Link zu Ihrem phpinfo()? Vielleicht legen Sie es auf einen Pastebin und posten den Link. Vielen Dank! – neubert