サーバー:さくらVPS (CentOS6.9 / Apache2.2.15)
ローカルのPHPバージョン:5.6
PHPのftp_nb_getを利用してローカルにファイルをダウンロードしたいのですが、下記を実行するとエラーが発生します。
※$get_file_nameや$save_fine_nameは実際にはフルパスを入れております。
PHP
1$domain = 'xxxxxxxx'; 2$user = 'xxxxxxxx'; 3$pass = 'xxxxxxxx'; 4 5$conn_id = ftp_connect($domain) or die("Couldn't connect to $domain"); 6 7if (!@ftp_login($conn_id, $user, $pass)) { 8 echo "Couldn't connect as $user"; 9} 10 11ftp_pasv($conn_id, true) or die("Cannot switch to passive mode"); 12 13//取得ファイルのパスと、保存ファイルのパス 14$get_file_name = "dump.sql"; 15$save_fine_name = date('Ymd') . ".sql"; 16 17$ret = ftp_nb_get($conn_id, $save_fine_name, $get_file_name, FTP_BINARY); 18 19while ($ret == FTP_MOREDATA) { 20 // ダウンロードを継続する… 21 $ret = ftp_nb_continue($conn_id); 22} 23if ($ret != FTP_FINISHED) { 24 exit("can not download file to finish ".$get_file_name."<br>"); 25} 26 27ftp_close($conn_id);
【エラー内容】 Warning: ftp_nb_get(): php_connect_nonb() failed: Bad file descriptor (9) in xxxx\cron.php on line xx Warning: ftp_nb_get(): Switching to Binary mode. in xxxx\cron.php on line xx can not download file to finish dump.sql<br>
上記と同じ記述でエックスサーバーだと問題なくダウンロードされます。
エラーメッセージで検索してみましたが有力な情報を見つけることが出来ませんでした。
CentOS側で何か設定が必要なのでしょうか。
よろしくお願いいたします。
あなたの回答
tips
プレビュー