我遇到了ssh2_sftp_rename問題,或者通常與SSH2/SFTP包裝器有關。如何調試ssh2_sftp_rename?
我們有兩臺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
在幕後做些什麼?有沒有其他人經歷過這樣的事情,並找到了解決方案?
感謝您的任何提示, 馬蒂亞斯