2017-04-09 5 views
0

Ich habe mein Frontend mit einer Schaltfläche, diese Schaltfläche spricht mit dem Back-End. Das Backend ist ein Remote-Skript starten:PHP: SSH-Verbindung und Python-Skript-Ausführung

<?php 
$myfile = fopen("newfile.txt", "w") or die("Unable to open file!"); 
$connection = ssh2_connect('192.168.56.180', 22); 
ssh2_auth_password($connection, 'root', 'password'); 
$stream = ssh2_exec($connection, 'python /WATSON/APP/test/testlistrbk.py'); 
stream_set_blocking($stream, true); 
$stream_out = ssh2_fetch_stream($stream, SSH2_STREAM_STDIO); 
echo $stream_out_contente; 
fwrite($myfile, $stream_out); 
fclose($myfile); 
?> 

Ich habe 2 Fragen, ersten, php den Python-Skript warten soll, bis zum Ende, wie gesagt, es here aber es funktioniert nicht.

zweite, Es gibt mir die folgende:

PHP Warning: fwrite() erwartet Parameter 2 in /var/www/html/WEBAPP/wa_start.php 41 auf Linie angegebene Zeichenfolge, Ressource,

+0

Put-Ausgabe von 'var_dump ($ stream_out);' vor Fwrite hier –

Antwort

1

Verwendung stream_get_contents(stream_out);

In Ihrem Code $stream_out = ssh2_fetch_stream($stream, SSH2_STREAM_STDIO); dies wird wieder resource String-Ausgabe nicht. Probieren Sie diesen Code aus.

$myfile = fopen("newfile.txt", "w") or die("Unable to open file!"); 

$connection = ssh2_connect('192.168.56.180', 22); 
ssh2_auth_password($connection, 'root', 'password'); 
$stream = ssh2_exec($connection, 'python /WATSON/APP/test/testlistrbk.py'); 

stream_set_blocking($stream, true); 

$outputStream = ssh2_fetch_stream($stream, SSH2_STREAM_STDIO); 
$errorStream = ssh2_fetch_stream($stream, SSH2_STREAM_STDERR); 

echo "Output: " . stream_get_contents($outputStream); 
echo "Error: " . stream_get_contents($errorStream); 

fwrite($myfile, $outputStream.$errorStream); 
fclose($myfile); 
+0

@MouIdri Bitte überprüfen Sie '$ stream_out' wird von' $ stream_out = ssh2_fetch_stream ($ Strom, SSH2_STREAM_STDIO) empfangen werden; ' –

+0

@Mouldri Sie Sie müssen nur die letzten drei Zeilen Ihres Codes durch meinen Code ersetzen. –

+0

Entschuldigung, ich habe das fehlende $ nicht gesehen. Ich habe es geändert und ich habe keine Fehlermeldung mehr. Aber Verhalten ist sehr seltsam, weil nichts in die Datei geschrieben wird (ich habe 0777 gechampt, also ist es kein Rechteproblem). – MouIdri