PHP関数の問題

時には、実行中のnginxとPHPのCGI(PHP FPM)LinuxサーバのWebサービス、システム負荷の急激な増加、topコマンド、CPU使用率を持つビューは、多くのphpcgiプロセスは、後で見つけ追跡することによって、100パーセントに近づくPHPののfile_get_contentsの状況()関数は、密接に関連しています。

 

 

HTTPプロトコルのAPI呼び出しのPHPプログラマに基づいて大規模なサイトへのメディアでは、より一般的な使用することを好むレクリエーション鹿の簡単で便利なファイルのget-内容(「http://example.com/ 」) 、しかし、返されたコンテンツのURLを取得する機能をゆっくりhttp://example.com/サイトの応答があった場合、ファイル-get-内容は、()は常にそこに滞在し、時間制限を超えないようにしてください。

 

 

マックスは、時間を指定することができるパラメータを持っていることを私たちを知って、それがPHPスクリプトの最大実行時間を設定することができます。しかし、PHP CGI(PHP FPM)で、このパラメータは、次のパラメータが実際にPHPスクリプトの最大実行時間を制御することができます何の効果PHP FPM.CONFの設定ファイルを持っていません。

 

スケッチか?

 

ワーカープロセスが終了された後、(秒単位)単一の要求のタイムアウトにサービスを提供

 

何らかの理由で「max_execution_timeに」INIオプションスクリプトの実行が停止していないときに使用する必要があります

 

「0」を「オフ」を表します

 

<値の名前=「要求\ uはタイムアウト\ uと終了」> 0 </ value>の

 

デフォルト値は0秒であり、これはPHPスクリプトはこれを実行し続けることを意味し、すべてのPHPのCGIプロセスが)(ファイルのget-内容で関数をトラップされたときに、新しいPHP要求にnginxの+ PHPのWebサーバなくなり取引、nginxのは、ユーザー「502不正なゲートウェイ」、PHPスクリプトの最大実行時間を設定するには、このパラメータを変更する必要があるが、これらの症状を治すために必要はありませんに戻りました。例えば、変更<値の名前=「要求終了タイムアウト> 1930 </ value>は、ファイル取得-内容()ウェブコンテンツは、非常に遅いこれ手段150のPHP CGIプロセスはわずか5秒ことができることである取得した場合リクエストが、ウェブサーバを回避することは困難である「502不正なゲートウェイを。」

 

 

この問題を解決するために、PHPプログラマは唯一の直接「GET」内容(「http://example.com/」)癖を使用してファイルを取り除くことができ、少しだけ、変更タイムアウトを追加し、次のようHTTPGETを実装問題が発生した要求されている場合は、次のコードは、関数にパッケージ化することができます。

おすすめ

転載: www.cnblogs.com/blogst/p/11804362.html