我有这样的设置(仅名称已更改):
$connection = ftp_connect('hostname.com') or die('Connection failure');
$login_result = ftp_login($connection, 'username', 'password');
输出错误:
ftp_login(): Authentication failed. in /path/to/file.php
从我的PHP复制粘贴到Cyberduck这样的FTP客户端成功。该资源$connection
似乎存在,因为否则它应该在该ftp_login
行之前死亡。我100%确保我具有正确的用户名和密码(如Cyberduck测试所证明的)。
唯一让我警惕的是,我知道PHP@
的前面有一个符号时,对字符串的处理方式有所不同,并且我的密码中可能有也可能没有一个或多个符号。
编辑:
由于Cyberduck在我的工作计算机上并且PHP在AWS上运行,因此我决定运行两个测试以缩小可能性。我设置了SSH隧道:
ssh -L 11111:foo.com:21 [email protected]
然后运行Cyberduck adam@localhost:11111
,在控制台中得到以下错误消息:
channel 3: open failed: connect failed: Connection refused
结果不确定。
因此,我将两行PHP脚本带到了我的机器上,然后又得到Authentication failed
了。所以它看起来像一个PHP问题...
原来,问题出在密码。我不知道为什么会这样,但是使用&符号(&
)作为密码的第一个字符会丢掉很多东西。将密码更改为没有前导号的字符即可。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句