我设置了一个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已启用。
任何帮助都会非常感激,我一整天都在试图解决这个问题。
答案 0 :(得分:2)
需要以被动模式运行
ftp_pasv($conn_id, true);