繁体   English   中英

为什么服务器运行时PHP ftp_connect失败?

[英]Why does PHP ftp_connect fail when the server is running?

我一直在尝试通过FTP连接到服务器一段时间,但似乎无法正常工作。

$connection_id = ftp_connect("example.com", 22);

运行此代码时,它会挂起一段时间,直到PHP最终告诉我该脚本执行了太长时间并退出为止。 它不会失败并返回FALSE。 它只是超时。

我的第一个直觉是服务器可能已关闭,所以我对其进行了ping操作。 ping成功,并且我没有丢失任何数据包。 然后,我尝试使用相同的参数连接Filezilla并能够连接 我也可以SSH到服务器。 我什至尝试延长PHP允许脚本执行的时间,但是它总是挂断并超时。

那么让我感到困惑的是,如果所有这些连接到服务器的方法都起作用,那么ftp_connect()函数为什么不起作用?

澄清:

你们中有些人想知道我为什么要使用端口22(SSH端口)进行连接。 我最初尝试使用FTP的默认端口(端口21),但是ftp_connect()函数立即返回FALSE,根据PHP手册,这意味着出现了一些错误。

我也无法通过端口21与FileZilla连接。 因此,我决定改用SFTP端口,即端口22。在FileZilla中成功连接。

第三个参数已添加到名为timeout的函数中。 尝试类似:

$conn = ftp_connect('site', 22, 360);

ftp_connect不能用于连接到SFTP服务器。 ssh2_sftpssh2_sftp ,它使用与标准FTP不同的方法。

可能是您可以尝试使用“ IP”地址而不是整个字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM