我正在尝试在我的项目中使用phpseclib,使用SFTP将产品Feed上传到Bing的Merchant Center。我在同一个项目中使用phpseclib通过SFTP将产品Feed上传到亚马逊,它运行正常,但我似乎无法成功连接到Bing。
以下代码尝试连接到Bring:
$sftp = new Net_SFTP(BING_FTP_SERVER);
if (!$sftp->login(BING_FTP_USERNAME, BING_FTP_PASSWORD)) {
exit('Login Failed');
}
当我运行此代码时,有大约10秒的延迟,然后我收到一个错误,说登录失败,并且:
Cannot connect to feeds.adcenter.microsoft.com. Error 110. Connection timed out
为了测试凭据,我使用Filezilla手动连接,它可以正常工作。但是,在连接之前,Filezilla向我显示一条警告,说服务器的证书是未知的,我需要在连接之前手动批准它。当我使用Filezilla将direclty连接到亚马逊的FTP服务器时,我不会收到此警告。
所以,我想知道这个警告是否可能导致问题。我是否需要以某种方式告诉我的Ubunut服务器信任Bing的FTP服务器上的证书,基本上模仿我在Filezilla中需要提供的手动批准?有谁知道如何做到这一点?
根据Bing商家常见问题解答,仅支持FTP或FTPS。不是SFTP。 phpseclib仅支持SFTP。 FTPS和SFTP是完全不同的协议。
有关其FTP功能,请参阅PHP手册: https://www.php.net/manual/en/book.ftp.php