我在Linux服务器上有一个ProFTPd(在x86_64上的Debian Linux 6.0.7 Linux 2.6.32-042stab078.27上的ProFTPd版本1.33),可以访问某些用户到他们的主目录。
我在Mac OS X Server上还有另一台FTP服务器。
如果我使用解决方案(2),我可以执行ftp_rawlist
以获得所有目录和文件的原始列表。
如果我使用解决方案(1),ftp_rawlist
总是返回FALSE
,即使该目录不为空。
用户有权在两台服务器上的主目录中执行任何他们想要的操作(获取目录列表,创建和删除文件等等)。没有限制。
我真的无法理解为什么我总是在ProFTPd上获得false
。
我浏览了一下互联网,发现该功能存在一些漏洞,但是在以前版本的PHP上。我正在运行PHP版本5.3.3-7 + squeeze16,并且没有针对此版本报告错误。
答案 0 :(得分:4)
尝试使用passive mode
ftp_pasv($conn, true);
如果您的FTP
服务器落后于firewall
,通常需要被动模式,您可以在此处阅读被动模式 - What is the difference between active and passive FTP?