PHP's FTP不能在Amazon linux EC2实例上工作


PHP's FTP isn't working on Amazon linux EC2 instance?

我设置了一个m1。大型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);