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