PHPエラー
こちらのページでは、アプリケーションの安定性、セキュリティ、優れたパフォーマンスを確保するため、適切なタイムアウト設定とメモリ制限を行う方法をご紹介します。アプリケーションの実行中、アプリケーションのログにPHPエラーが表示されている場合、リクエストの未完了や停止によって、PHPスクリプトが無制限に実行されるのを回避したい場合などに有用です。
メモリ制限
アプリケーションホスティングのデフォルトのPHPメモリ制限は、すべてのPHPバージョンで128MBです。この制限を超えた場合、アプリケーションのランタイムログに以下のようなエラーが表示される可能性があります。
Detected 1047468200 Bytes of RAM(1047468200バイトのRAMを検出しました)
PHP memory_limit is 128M Bytes(PHPのメモリ制限は128MBです)
アプリケーションのメモリ制限を増やすには、アプリケーションのルートディレクトリに.user.iniファイルを作成し、メモリ制限の設定を追加してください。例えば、PHPのメモリ制限を256MBに増やす場合は、以下のようになります。
memory_limit = 256M
リクエスト処理タイムアウトまでの時間を引き上げる
FastCGI Process Manager(FPM)のrequest_terminate_timeout
ディレクティブにより、 スクリプトが終了したかどうかにかかわらず、ウェブサーバーがPHPスクリプトを強制終了するまでの最大実行時間を決定することができます。
これは、コーディングエラーや無限ループ、過剰な処理時間などによってPHPスクリプトが無制限に実行されるのを防ぐのに効果的です。適切なrequest_terminate_timeout
を設定することで、PHPプロセスがサーバーリソースを過剰に消費し、 サーバー全体のパフォーマンスや安定性に影響を与える可能性を防ぐことができます。
request_terminate_timeoutの値を変更する方法は次の通りです。
- リポジトリのルートディレクトリにfpm_custom.confという名前のファイルを作成し、例えば以下のような値を追加(デフォルトの単位は秒)
request_terminate_timeout = 120
- 変更をGitリポジトリにプッシュ
- MyKinsta内で、「アプリケーション」>「プロセス」>「ウェブプロセス」 >「startコマンド」の編集画面で、fpm_custom.confファイルを指定(例:
heroku-php-apache2 -F fpm_custom.conf
)