簡體   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