2014-02-26

CentOS6 php 無法使用 ftp_connect 的解決辦法

雖然常常遇到,但每每遇到又會忘記,所以在此筆記。

在 Security Enhanced Linux 下,Apache 可能不能如你原來習慣的方式使用。

在 PHP 下,當你遇到連 connect 都會失敗時
<testftp.php>
$conn_id = ftp_connect($ip,$port,$timeout);
if (!$conn_id)
{
    print "FTP connect failed!!";
    exit();
}


1. 先確定網路連線都沒問題
2. php  testftp.php 也正常
3. 指令視窗 ftp xxx.xxx.xxx.xxx 也可以連線且登入

這時候可能要注意你的 Linux 是不是 SELinux
若是,依下指令

a.下指令讀出你的httpd是否被關閉連出功能
# getsebool httpd_can_network_connect
httpd_can_network_connect --> off

b. 將權限永久打開(重開機設定還是存在)
# setsebool -P httpd_can_network_connect=1


c. 再試連看看,應該就可以正常連線囉~







沒有留言:

張貼留言