CentOS サーバーが PHP 経由で他の Windows ベースのサーバーと FTP 接続を確立できるようにする

CentOS サーバーが PHP 経由で他の Windows ベースのサーバーと FTP 接続を確立できるようにする

ローカル 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 recentWebページをロードしようとしたら、rootまたはsudoを介して次のコマンドを実行して監査ログを確認します。を使用してSELinuxブール値を設定できますsetsebool -P httpd_can_network_connect on。 SELinux ブールの詳細を読んでください。ここ

関連情報