Php
PHP 的 FTP 不能在 Amazon linux EC2 實例上執行?
我設置了一個 m1.large EC2 實例,並想用它從 CDN 的伺服器上下載日誌。我的程式碼在我的 ubuntu 筆記型電腦上執行良好,但是一旦上傳到伺服器,ftp_rawlist() 函式就停止工作了。據我所知,程式碼仍在登錄 ftp 伺服器,但 rawlist 沒有返回任何文件。
這是範常式式碼:
<?php $FTP_USERNAME = 'username'; $FTP_PASSWORD = 'pass'; $FTP_SERVER = 'cdn.server'; $FTP_LOGDIR = 'logs'; $conn_id = ftp_connect($FTP_SERVER) or die('Couldn\'t connect to '.$FTP_SERVER); if(!ftp_login($conn_id, $FTP_USERNAME, $FTP_PASSWORD)) { die('Couldn\'t connect as '.$FTP_USERNAME); } ftp_chdir($conn_id, $FTP_LOGDIR); $rawlist = ftp_rawlist($conn_id, '.'); ftp_close($conn_id); var_dump($rawlist); ?>
輸出是這樣的:
bool(false)
即使我知道目錄不是空的。
設置伺服器時,這些是我用來安裝所有內容的命令:
sudo yum install php sudo yum install php-mysql sudo yum install php-pear sudo pear channel-discover pear.amazonwebservices.com sudo pear install aws/sdk
我什至打開了安全組的所有埠,但即便如此,輸出仍然是 bool(false)。並且 php -i 顯示 ftp 已啟用。
任何幫助將不勝感激,我整天都在絞盡腦汁試圖弄清楚這一點。
需要在被動模式下執行它
ftp_pasv($conn_id, true);