ftp_nlist 命令不起作用

问题描述 投票:0回答:2

我使用以下代码↓连接到 ftp 服务器并获取文件列表。它在我的本地计算机(Fedora 11)上运行正常,但在生产环境(运行 Ubuntu)上运行不正常,其中 ftp_nlist 方法返回 false。

$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)
php ftp
2个回答
46
投票

原来这与服务器的防火墙配置有关。 登录后切换到被动模式,一切正常。

ftp_pasv($connectionId, true);

-1
投票

ftp_pasv($connectionId, true);解决了!!!

© www.soinside.com 2019 - 2024. All rights reserved.