作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我一直在尝试制作一些脚本,通过 FTP 从我在 CentOS 中的本地主机 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
设置策略,因此它在重启后仍然存在
关于php - 无法使用本地主机的 PHP ftp_connect 连接到 FTP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12462898/
我正在开发一个 voip 调用应用程序。我需要做的是在接到来电时将 Activity 带到前台。我在应用程序中使用 Twilio,并在收到推送消息时开始调用。 问题是我试图在接到任何电话时显示 Act
我是一名优秀的程序员,十分优秀!