Php 如何调试ssh2\u sftp\u重命名?
我在ssh2\u sftp\u重命名方面遇到了问题,或者通常在ssh2/sftp包装器方面遇到了问题 我们有两台SFTP服务器。一个是我们自己设置的测试服务器,另一个来自服务提供商。在测试服务器上,一切正常,而在提供的SFTP上,我们无法通过PHP重命名文件。通过sftp cli手动重命名效果良好。我们的SFTP服务器使用协议版本2.0和远程软件版本OpenSSH_6.0p1 Debian-4,而另一个使用协议版本2.0,远程软件版本OpenSSH_5.3。所以我想他们也应该这样做 下面是用于测试的最小代码段,它不起作用:Php 如何调试ssh2\u sftp\u重命名?,php,rename,sftp,Php,Rename,Sftp,我在ssh2\u sftp\u重命名方面遇到了问题,或者通常在ssh2/sftp包装器方面遇到了问题 我们有两台SFTP服务器。一个是我们自己设置的测试服务器,另一个来自服务提供商。在测试服务器上,一切正常,而在提供的SFTP上,我们无法通过PHP重命名文件。通过sftp cli手动重命名效果良好。我们的SFTP服务器使用协议版本2.0和远程软件版本OpenSSH_6.0p1 Debian-4,而另一个使用协议版本2.0,远程软件版本OpenSSH_5.3。所以我想他们也应该这样做 下面是用于测
<?php
$connection = ssh2_connect('sftp.serviceprovider.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);
$result = ssh2_sftp_rename($sftp, '/new/foo.xml.gz', '/processed/foo.xml.gz');
var_dump($result);
var_dump(error_get_last());
诊断libssh2的问题几乎是不可能的。我的建议是:使用。例如
我想不是看到日志,而是权限问题,但日志肯定会告诉我们
<?php
include('Net/SFTP.php');
include('Crypt/RSA.php');
define('NET_SFTP_LOGGING', NET_SFTP_LOG_COMPLEX);
$sftp = new Net_SFTP('www.domain.tld');
if (!$sftp->login('username', 'password')) {
exit('Login Failed');
}
$sftp->rename('filename.remote', 'newname.remote');
echo $sftp->getSFTPLog();
?>