我正在向SCP写一个代码,从Solaris 10机器到路由器的文件(不可能更简单)。 这是代码:
<?php
$src = "test.txt";
$trg = "test.txt";
echo "Connecting...\n";
$connection = ssh2_connect('myrouter',22);
echo "Authenticating...\n";
ssh2_auth_password($connection, 'mylogin', 'mypassword');
echo "Sending...\n";
ssh2_scp_send($connection, $src, $trg);
?>
这很好用,但远程文件名搞砸了:
10/11/2012 10:57p 15 'test.txt'
请注意文件名test.txt
周围的单引号。
当我使用Solaris SCP时,一切正常。这是命令:
solaris10$ scp test.txt mylogin@myrouter:test.txt
远程文件名如下所示:
10/11/2012 11:10p 15 test.txt
所以问题似乎仅限于PHP。
有没有人有类似的问题?我应该从哪里开始寻找?
远程文件系统是FAT32。
谢谢你, PN。
答案 0 :(得分:0)
此页面上的底部评论http://www.php.net/manual/en/function.ssh2-scp-send.php指的是您可能遇到的问题;
您可以将$trg
设置为完整的远程服务器路径吗?
$trg = "/var/www/test.txt";
或
$trg = "/test.txt";
答案 1 :(得分:0)
使用ssh2_scp_send()时遇到了同样的问题。但是,我切换到使用ssh2_sftp()和fwrite(),问题就消失了。请参阅http://www.php.net/manual/en/function.ssh2-sftp.php页面上的评论中的示例。