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の値を変更する方法は次の通りです。

  1. リポジトリのルートディレクトリにfpm_custom.confという名前のファイルを作成し、例えば以下のような値を追加(デフォルトの単位は秒)
  2. request_terminate_timeout = 120
  3. 変更をGitリポジトリにプッシュ
  4. MyKinsta内で「アプリケーション」>「プロセス」>「ウェブプロセス」に移動し、startコマンドの変更画面で、fpm_custom.confファイルを指定(例:heroku-php-apache2 -F fpm_custom.conf

最大実行時間を引き上げる

max_execution_timeは、PHPスクリプトがサーバーによって終了させられるまでの最大実行時間を秒単位で定義します。

アプリケーションの最大実行時間を増やすには、アプリケーションのルートディレクトリに .user.iniファイルを作成し、そのファイルに最大実行時間の設定を追加します。例えば、最大実行時間を60秒にするには、以下のようになります。

max_execution_time = 60

)Cloudflareの185秒制限により、この値は最大185秒に制限されます。

なお、max_execution_timeを変更する際は、スクリプトが実行時間前に終了しないよう、request_terminate_timeout値も変更してください。

この記事は役に立ちましたか?

© 2013 - 2025 Kinsta Inc. 著作権所有。Kinsta®、MyKinsta®、DevKinsta®はKinsta Inc.が所有する登録商標です。登録商標WordPress®はWordPress Foundationの知的財産であり、登録商標Woo®並びにWooCommerce®はWooCommerce, Inc.の知的財産です。WordPress®、Woo®、WooCommerce®の当ウェブサイトでの使用は識別のみを目的としておりWordPress FoundationまたはWooCommerce, Inc.による推奨や承認を意味するものではありません。KinstaはWordPress FoundationまたはWooCommerce, Inc.により認定、所有されておらず、関連会社でもありません。 法的事項はこちらをご覧ください。