当我从本地 wamp 运行此代码时,它工作正常并打印结果。
//connection to a ftp server across proxy
putenv('TMPDIR=/tmp/');
$ftp_server = "SERVER IP";
$ftp_user_name = "XXXXXX";
$ftp_user_pass = "XXXXXX";
$destination_path = "/sanketik/";
$remote_file = $destination_path.$file;
// set up basic connection
$conn_id = ftp_connect($ftp_server);
// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
// enabling passive mode
ftp_pasv( $conn_id, true );
// get contents of the current directory
$contents = ftp_nlist($conn_id, "/sanketik");
// output $contents
var_dump($contents);
输出:
array (size=5)
0 => string '/sanketik/bittu' (length=15)
1 => string '/sanketik/mysql.png' (length=19)
2 => string '/sanketik/shakun' (length=16)
3 => string '/sanketik/shakun.txt' (length=20)
4 => string '/sanketik/TTTTT.txt' (length=19)
但是当我从基于 CentOS 的服务器运行相同的代码时,它会给出NULL
.
谢谢
答案1
你检查过审计日志吗?我怀疑 SELinux 正在阻止您的 Web 服务器打开到 FTP 服务器的出站连接。您可能需要设置httpd_can_network_connect
布尔值。ausearch -m avc -ts recent
尝试加载网页后,通过运行(以 root 身份或通过 sudo)检查审核日志:您可以使用 来设置 SELinux 布尔值setsebool -P httpd_can_network_connect on
。阅读有关 SELinux 布尔值的更多信息这里。