我在使用 ssh2_sftp_rename 时遇到问题,或者通常使用 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());
$result
是false
并error_get_last()
返回NULL
。我还尝试保留开头的斜杠或我能想到的任何其他组合,但它只是“不起作用”:文件仍在“新”文件夹中。
因此,不幸的是,我无法查看服务提供商的日志文件,但我已要求提供日志摘录或至少进行分析。但我不想等待他们的支持中心回答我的问题并尝试调试这些东西。
有没有可能在幕后调试什么ssh2_sftp_rename
或正在做什么?rename
有没有其他人经历过这样的事情并找到了解决方案?
感谢您的任何提示,马蒂亚斯