我在Mac上使用MAMP Pro作为我的开发环境。在这里,我使用来自Packagist的Touki\FTP包来处理FTP连接。
我在本地工作得很好,但是当我在我的生产环境中尝试它时,这是一个带有 Ubuntu 的 AWS EC2 服务器,安装了 Apache2 和 php5,但它不起作用。
当我使用phpinfo()
时,我可以看到FTP扩展名已启用。
这是我的代码:
use ToukiFTPConnectionConnection;
use ToukiFTPFTPWrapper;
$connection = new Connection('host', 'user', 'pass');
$connection->open();
$wrapper = new FTPWrapper($connection);
$files = $wrapper->nlist("/myfolder");
foreach($files as $fileKey => $fileName) {
$fileext = explode(".", $fileName);
$ext = $fileext[sizeof($fileext)-1];
if($ext == 'txt') {
echo $fileName;
}
}
$connection->close();
我想通了。它应该在生产环境中处于被动模式。所以我将$connection改为:
$connection = new Connection('host', 'user', 'pass', $port = 21, $timeout = 90, $passive = true);
$connection->open();
现在它完美运行。