2013-03-28 45 views
7

FTP経由でPHP cronジョブを使用してファイルをサードパーティに送信します。私は「時々」私はまさにその意味で言うとき"php_connect_nonb()が失敗しました:現在進行中の操作(115)"が間欠的に発生します

ErrorException [ 2 ]: ftp_put(): php_connect_nonb() failed: Operation 
now in progress (115) ~ MODPATH/fileop/classes/Drivers/Fileop/Ftp.php [ 37 ] 

;:

は、しかし、時には我々は次のエラーを取得しますほとんどの場合、それはうまくいくが、約5回に1回、そのエラーが発生する。ファイル自体とは関係ありません。なぜなら、私たちがもう一度やり直すと幸せに行くからです。

我々は、オンライン同様の問題は検出されませんでした - NATデバイスでbug in PHPに関連するか、ファイアウォールの設定を行うことなく、再び含意はこのようなケースであれば、それは決して仕事だろうということです。

だから、なぜこれは何回か動作するのでしょうか?

+0

あなたのFTPサーバーのバージョンは何ですか:

This pageは素敵な要約を持っていますか?それを更新すると、そのソフトウェアのバグを修正する可能性があります。 https://bugs.php.net/bug.php?id=47110 –

+0

ええ、私はそれを見ました。しかし、そのユーザーはまったく接続できないようです。サーバーのバージョンは不明です。私は第三者から調べる必要があります。 –

+0

FTPの代わりにSCPを使用してみてください。http://www.hypexr.org/linux_scp_help.php –

答えて

1

私はFTPサーバーを調査し、elitehosts.comを提供したリンクを読んだ後、この回答を書いています。

私はFileZilla FTPサーバーを使用しています。これを動作させるために入力しなければならない特定の設定があります。サーバー設定に入ると、「パッシブモード設定」という領域があります。このダイアログには、「IPv4固有」と題された領域があり、その領域に「パッシブモード転送のための外部サーバIPアドレス:」というラベルの設定があります。これはラジオボタンの選択セットであり、デフォルトでは設定されていましたが、FTPサーバがNATで設定されているため、そのラジオの選択を「デフォルト」から「次のIPを使用:」に変更し、外部向きのIP ISPから提供されたゲートウェイのアドレス。

私がこれを設定した後、それは機能しました! FTPサーバーがNATで接続されているかどうかは間違いありませんが、関連性があると思われるので、このスレッドで回答を提供すると思いました。

2

FTP(S) uses random ports to set up data connections;断続的な成功率は、クライアントおよび/またはサーバーマシン上のファイアウォールによってすべてのポートが許可されているわけではないことを示します。着信(PASV)データ接続のポート範囲は、FTPサーバーで設定できます。

The easy way is to simply allow FTP servers and clients unlimited access through your firewall, but if you like to limit their access to "known" ports, you have to understand the 4 different scenarios.

1) The FTP server should be allowed to accept TCP connections to port 21, and to make TCP connections from port 20 to any (remote ephemeral) port.

2) The FTP server should be allowed to accept TCP connections to port 21, AND to accept TCP connections to any ephemeral port as well!

3) The FTP client should be allowed to make TCP connections to port 21, and to accept TCP connections from port 20 to any ephemeral port.

4) The FTP client should be allowed to make TCP connections to port 21, and to make TCP connections to any other (remote ephemeral) port as well!

関連する問題