実稼働サーバーで pcntl lib を使用することが推奨されない理由を誰か教えてもらえますか? PHP マニュアルはそれについて非常に簡単に説明しており、私はこのライブラリを使用する必要があります... PHP で同じことを行う別の方法はありますか?
2 に答える
pcntl がサポートする機能 (フォーク、プロセス制御、シグナル処理) は、CGI スタイルのアプリケーションで使用すべきではないことが明確に示されているため、実稼働環境では pcntl は推奨されません。さて、PHP でデーモンまたはコマンド ライン アプリケーションを作成している場合、それは別の問題です...
PHPマニュアルから:
Process Control は Web サーバー環境内で有効にしないでください。Web サーバー環境内で Process Control 機能を使用すると、予期しない結果が生じる可能性があります。
php cli スクリプトと sapi/cgi スクリプトの違いについて明確にする必要があります。実稼働システムの php は、pcntl をサポートしている場合もあります。
ここで重要なことは、2 つの php 構成ファイルを用意することです。1 つは cli 用、もう 1 つは cgi セットアップ用です。次に、cgi セットアップで pctnl を無効にする必要があります。実際のセキュリティの問題は、Web サーバーによって実行されたときにスクリプトをフォークすると、ゾンビ プロセスがシステムにフラッディングする可能性があるためです。
cli 環境では、フォークするスクリプトを記述できる必要がある場合があります...