VestaCPウェブサービスに「phpfcgid」テンプレートを選択した後、多数のPHP-CGIプロセスがすぐにメモリを使い果たしてしまった。
- サーバーを再起動した後、基本的に数時間メモリが不足していました。
- 以前アイドル状態だった PHP-CGI プロセスは強制終了されず、1 つのプロセスが 20 近くのサブプロセスを実行し、少なくとも 100M のメモリを消費します。
SSHで使用 htop コマンド(インストールが必要)、このステータスを表示できます▼

htop コマンドを使用したときに「-bash: htop: コマンドが見つかりません」というエラー メッセージが表示される場合は、このチュートリアルで解決方法を確認してください ▼
PHP-CGIプロセスが多数存在したため、メモリが急速に枯渇しました。この問題は、VestaCPがCentOSのphpfcgidテンプレートで最適化されていない設定を使用していることに起因します。
- phpfcgid テンプレートの VestaCP では、1 つの PHP-CGI プロセスを設定して、最大 20 の子プロセスを実行します。
見る /usr/local/vesta/data/templates/web/httpd/phpfcgid.sh ファイルの 13 行目:
export PHP_FCGI_CHILDREN=20
ただし、このような設定は、PHP サブプロセス管理ドキュメントの Apache の警告に違反しています。
PHPの子プロセス管理(PHP_FCGI_CHILDREN)は、mod_fcgidでは常に無効にする必要があります。mod_fcgidは、自身が生成したアプリケーションプロセスに一度に1つのリクエストしかルーティングしないため、PHPによって作成された子プロセスは効果的に使用されません。(さらに、PHPの子プロセスが正しく終了されない可能性もあります。)デフォルトでは、環境変数PHP_FCGI_CHILDREN=0を設定すると、PHPの子プロセス管理は無効になります。
Apache の mod_fcgid モジュールでは、PHP-CGI プロセスは一度に XNUMX つの要求にしか応答して実行できないため、PHP-CGI 子プロセスは非常に非効率的です。
そのため、PHP サブプロセス管理の設定を直接無効にする必要があります ▼
PHP_FCGI_CHILDREN=0
同時に、すでに生成された仮想ホストがある場合は、すべての Web サイトの構成ファイルを変更する必要があります ▼
/home/用户名/web/域名/cgi-bin/fcgi-starter
fcgi-starter 設定ファイルを開いた後、以下を挿入 ▼
export PHP_FCGI_CHILDREN=20
▼に変更
export PHP_FCGI_CHILDREN=0
- 変更後、PHP サブプロセス管理は mod_fcgid モードでオフになります。
- PHP-CGI プロセスは子プロセスを生成しなくなり、多くのメモリを節約できます。
また、VestaCP はアイドル プロセスの終了メカニズムを設定しません。
- 新しく実行されたすべての PHP-CGI プロセスは、システムが再起動されるまでメモリを使用し続けます。
これを修正するには、mod_fcgid 設定ファイルを追加するだけです /etc/httpd/conf.d/fcgid.conf ▼に以下の設定を追加
FcgidIdleTimeout 120
- 2 分間 (120 秒) アイドル状態の PHP-CGI プロセスを自動的に強制終了するように Apache を設定します。
セットアップ完了後、Apacheサービスを再起動▼
service httpd restart
サービスを再起動すると、以前は HTOP に表示されていた数百の PHP-CGI プロセスが表示されなくなります。
通常、Vesta CPユーザー1人につき1つのPHP-CGIプロセスが消費するメモリは30~40MB程度であり、これはLinuxホストにとっては十分すぎる量です。
したがって、SEOで成果を上げたいオンラインマーケターにとって、Vestaのコンテンツとテンプレートの設定を最適化することは非常に重要です。
VestaCP パネルで次のチュートリアルを見ることができます ▼
Chen Weiliang氏のブログ(https://www.chenweiliang.com/ )で公開されている記事「複数のプロセスによる500メモリ不足エラーに対するVestaCP phpfcgidテンプレート設定の最適化」が、皆様のお役に立てば幸いです。
この記事のリンクはご自由に共有してください:https://www.chenweiliang.com/cwl-735.html



