我正在使用以下代码↓ 连接到 ftp 服务器并获取文件列表。它在我的本地计算机 (Fedora 11) 上运行正常,但在 ftp_nlist 方法返回 false 的生产环境(运行 Ubuntu)上运行不正常。
$ftpInfo = array('directory' => 'somewebsite.com',
'user' => 'someuser',
'password' => 'somepass',
'port' => 21,
'timeout' => 30);
$connectionId = ftp_connect($ftpInfo['directory'],
$ftpInfo['port'],
$ftpInfo['timeout']);
$loginResult = ftp_login($connectionId, $ftpInfo['user'], $ftpInfo['password']);
$files = ftp_nlist($connectionId, '.');
var_dump($files);
ftp_close($connectionId);
在我的机器上返回一个文件数组,在生产环境中返回 false。
特别烦人的是,在这两种情况下,它都能成功连接和登录。
var_dump($loginResult);
返回
bool(true)
最佳答案
原来这与服务器的防火墙配置有关。 登录后切换到被动模式,一切正常。
ftp_pasv($connectionId, true);
关于php - ftp_nlist 命令不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1609140/