无法使用来自localhost的PHP ftp_connect连接到FTP

前端之家收集整理的这篇文章主要介绍了无法使用来自localhost的PHP ftp_connect连接到FTP前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我一直在尝试制作一些脚本,通过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();
}

我在远程服务器上尝试了相同的脚本,它工作正常!
我不确定是否要进行任何apache配置,或者本身是否有PHP限制.

更新:

这是错误日志:

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设置策略,使其在重新启动时保持不变

原文链接:https://www.f2er.com/php/133545.html

猜你在找的PHP相关文章