1

タイムアウトに関してホストの設定に問題がありますが、実際にはどれが原因なのか正確にはわかりません。このコードをphpページで実行すると:

<?PHP sleep(30); echo "Done"; ?>

それは私に与えます"tcp error operation timeout"

しかし、それを変更すると、sleep(20)正常に実行されます。ですから、php ini ファイルのどの項目がこのタイムアウトの原因であるかを調べるのを手伝ってください。しかし、私はそれをグーグルで検索しようとしましたが、すでに多くの提案を試みましたが、うまくいきませんでした。

4

4 に答える 4

2

エラー メッセージに基づいて、これは PHP のタイムアウトではなく、実際の Web サーバーが「プラグを抜く」ことであると思われます (30 秒という時間制限は途方もなく短いですが)。

sleepこれは確かに通常の PHP エラー メッセージではありません。実際の CPU 時間を消費しないため、 を使用してPHP タイムアウトを誘発することはできません。

実行しているホストの種類 (Apache? Nginx? IIS? 共有ホスティング? VPS? など) がわからないと、どこを変更できるかを知るのは困難です。

于 2013-03-10T21:35:13.083 に答える
0

構成の時間制限を見てください。

次のコード行を使用して、スクリプトの時間制限を変更できます。

set_time_limit(60);

デフォルト値 id 30s。内部にパラメーターを指定せずに set_time_limit() を使用している場合、カウンターがリセットされるだけで、使用可能な合計時間が 30 秒増加します。

ドキュメントset_time_limit documentationを見てください

于 2013-03-10T21:28:38.100 に答える
0

この回答を、同様の問題を探しているすべての人と共有したいと思います。根本的な原因を探すのに数時間を費やした後、最終的にコードを変更せずにそのNetwork Error (tcp_error) A communication error occurred: "Operation timed out"エラーを見つけたdisappeared when i ran my script on another machineので、the issue was with either my machine or my internet speed本当にわかりません。いずれにせよ、エラーはコードだけでは見つからない可能性があります。

于 2013-03-11T12:45:43.483 に答える
0

デフォルトの php タイムアウトは 30 秒です。タイムアウトsleep(30)を増やす必要がある場合は、php スクリプトから変更する方法が 2 つあります。

set_time_limit ( int $seconds );

また

ini_set('max_execution_time', int $seconds);

于 2013-03-10T21:50:21.703 に答える