Linux PHP-CGI プロセスが自動的に終了する
PHP-CGI プロセスは、PHP スクリプトを実行する非常に一般的な方法ですが、場合によってはこれらのプロセスが自動的に終了し、Web サイトが適切に実行されなくなることがあります。この記事では、PHP-CGIプロセスが自動的に終了してしまう問題の解決方法を紹介します。
まず、システム ログを確認して、PHP-CGI プロセスが自動的にシャットダウンした理由を特定する必要があります。ほとんどの Linux ディストリビューションでは、システム ログ ファイルは /var/log ディレクトリにあります。次のコマンドを使用して、最近のシステム ログを表示できます:
$ sudo tail -f /var/log/syslog
メモリまたはその他のリソースが不足しているために PHP-CGI プロセスが自動的にシャットダウンした場合、ログ ファイルに次のような情報が表示されます。 ##
Apr 15 14:35:26 myserver kernel: Out of memory: Kill process 1234 (php-cgi) score 5678 or sacrifice child上記の情報は、システムがメモリを解放するために PHP-CGI プロセスを強制終了したことを示しています。
$ ulimit -v 524288このコマンドを PHP-CGI プロセス起動スクリプトに追加すると、PHP-CGI をすぐに起動できます。プロセスが有効になります。
location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_read_timeout 30; include fastcgi_params; }fastcgi_read_timeout を PHP アプリケーションが必要とする適切な値に設定できます。
$ sudo apt-get install supervisorインストール後、スーパーバイザー構成ファイルを作成する必要があります。例:
[program:php-cgi] command=/usr/bin/php-cgi -b 127.0.0.1:9000 autostart=true autorestart=true redirect_stderr=true上記の構成ファイルSupervisor が PHP-CGI プロセスを自動的に開始して監視できるようにすることができます。 PHP-CGI プロセス設定に従って構成ファイルを変更できます。 最後に、次のコマンドを使用してスーパーバイザを起動する必要があります:
$ sudo systemctl start supervisor概要: PHP-CGI プロセスは、Web サーバーで PHP スクリプトを実行する一般的な方法です。 PHP-CGI プロセスが自動的にシャットダウンする場合は、システム ログを表示し、プロセス制限を調整し、CGI タイムアウトを調整し、プロセス マネージャーを使用することで問題を解決できます。 PHP-CGI プロセスを常に利用できるようにするには、上記の方法を組み合わせて使用します。
以上がPHP-CGIプロセスが自動的に終了する問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。