PHPのタイムアウト値変更
方針
max_execution_timeの値を変更する
以下は phpinfo() をプログラムで呼び出した php.ini の出力結果
変更方法
プログラムによる設定変更
- https://www.php.net/manual/ja/function.ini-set.php
- https://www.php.net/manual/ja/function.set-time-limit.php
注意点
関数 set_time_limit() と設定ディレクティブ max_execution_time は、 このスクリプト自体の実行時間にのみ影響を与えます。system() を用いたシステムコール、ストリーム操作、 データベースクエリ等のスクリプト実行以外で発生する処理にかかった時間は スクリプトが実行される最大時間を定義する際には含まれません。 ただし、Windows ではこれは当てはまりません。 計測された時間は実際の時間と等しくなります。
特にストリーム操作やクエリ操作・DB更新に関連する処理時間はタイムアウト値の計測時間に含まれないため、max_execution_timeの値を超えても処理が継続される場合がある。
Nginxのタイムアウト値変更
方針
fastcgi_read_timeoutの値を変更する
変更方法
nginx.conf に値を定義
http {
...
fastcgi_read_timeout 30; // サーバーからのレスポンスのタイムアウトを30秒に設定
...
nginx.conf を更新したため nginx を再起動
- Docker外では以下を参考
- Docker内では以下のコマンド
docker compose restart nginx