无法使用来自localhost的PHP ftp_connect连接到FTP
发布时间:2020-12-13 22:36:05 所属栏目:PHP教程 来源:网络整理
导读:我一直在尝试制作一些脚本,通过FTP从我在CentOS的localhost Apache下载文件,我无法让它工作! 我使用的代码是任何基本ftp请求使用的代码: ?php$ip= FTP_IP_HERE;$port='21';$timeout='90';$un='username';$pw='password';// Connect to ftp$conn_id = ftp_c
我一直在尝试制作一些脚本,通过FTP从我在CentOS的localhost Apache下载文件,我无法让它工作!
我使用的代码是任何基本ftp请求使用的代码: <?php $ip= FTP_IP_HERE; $port='21'; $timeout='90'; $un='username'; $pw='password'; // Connect to ftp $conn_id = ftp_connect($ip,$port,$timeout); // Open a session to an external ftp site $login_result = ftp_login ($conn_id,$un,$pw); // Check open if ((!$conn_id) || (!$login_result)) { print "FTP connection failed!"; exit(); } // turn on passive mode transfers if (ftp_pasv($conn_id,true) == FALSE) { print "Passive FTP connection failed!"; exit(); } 我在远程服务器上尝试了相同的脚本,它工作正常! 更新: 这是错误日志: Warning: ftp_login() expects parameter 1 to be resource,boolean given in /var/www/html/ftp/FTP.php on line 16 Warning: ftp_get() expects parameter 1 to be resource,boolean given in /var/www/html/ftp/FTP.php on line 22 Falha ao enviar o arquivo test.pdf<br />Array ( [type] => 2 [message] => ftp_get() expects parameter 1 to be resource,boolean given [file] => /var/www/html/ftp/FTP.php [line] => 22 ) Warning: ftp_close() expects parameter 1 to be resource,boolean given in /var/www/html/ftp/FTP.php on line 30
好的,我有同样的问题,我找到了解决方案.将它发布在这里以帮助他人.
我的PHP脚本会失败,但我可以通过命令行轻松FTP.我验证我的防火墙没有阻止脚本,我的日志中没有得到任何PHP错误… 搜索后,看来我的问题是SELinux.我不想关闭它,所以我检查了httpd_can_network_connect的状态. 通过运行检查您的状态: getsebool httpd_can_network_connect 如果你得到: httpd_can_network_connect --> off 这可能是你的问题. 注意: 如果你已经有这个: httpd_can_network_connect --> on 要么 SELinux is disabled 那么这不会解决你的问题……祝你好运找到解决方案. 修复 运行以下命令启用httpd_can_network_connect: setsebool httpd_can_network_connect=1 再次测试您的脚本,看它是否有效.这对我有用,所以我确保设置一个策略来保持启用. setsebool -P httpd_can_network_connect=1 注意:-P设置策略,使其在重新启动时保持不变 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |