Wie verwende ich phpseclib hochladen Datei von meinem php-server -> someOther server?
Ich versuche, eine Datei hochzuladen, von meinem php-server zu einem anderen server
(mein Arbeitsplatz ist ziemlich lame genug, um block-ssh-traffic)
Wie auch immer, hier ist, was ich versuche zu tun:
(an: /public_html/manage.php
<?php
set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib/phpseclib');
include('Net/SSH2.php');
include('Net/SFTP.php');
$ssh = new Net_SSH2('SomeServer',22); //starting the ssh connection to localhost
if (!$ssh->login('root', '12345')) { //if you can't log on...
exit('ssh Login Failed');
}
$sftp = new Net_SFTP('SomeServer',22);
if (!$sftp->login('root', '12345')) { //if you can't log on...
exit('sftp Login Failed');
}
echo $sftp->pwd();
$output = $sftp->put('/root/1_yum_stuff.sh', '1_yum_stuff.txt');
echo $output;
$output = $ssh->exec('ls -a');
//$output = $ssh->exec('./1_yum_stuff.sh & 1>1.txt');
echo $output;
$output = $ssh->exec('pwd');
echo $output;
echo("3rd try!");
?>
Die Sache ist, die Datei "1_yum_stuff.txt" liegt unter /public_html/Ordner auf meinem php-server und sftp kann einfach nicht die Datei verschieben.
Sowieso, ist das der richtige Weg, um sftp-Modul von phpseclib? (z.B. setzen?)
Dank:) !
- Könnte es sein, dass du den 3. parameter der put-Methode, wie hier beschrieben: stackoverflow.com/a/9578377/1427878, so dass die lib weiß, es ist eine lokale Datei, die Sie hochladen möchten?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde ändern Sie Ihren code ein wenig. zB.:
Net_SFTP erstreckt Net_SSH2 so ist es erbt alle Methoden. Auch, CBroe ist berechtigt - ohne dass Dritte parameter für
$sftp->put()
phpseclib erstellen /root/1_yum_stuff.sh mit 15 bytes in es (ie.strlen("1_yum_stuff.txt")
).