Skip to content
戻る

Xdebugでデバッグしていると504 Timeoutエラーとなる

Published:  at  11:11

概要

Dockerを使用したNginx + PHP-FPMの環境でXdebug + VSCodeでデバッグしていると
いつの間にか504 Timeoutエラーになってしまったのでその回避策メモです。

目次

参考サイト様

環境

$ docker -v
Docker version 18.09.2, build 6247962
$ docker-compose -v
docker-compose version 1.23.2, build 1110ad01

PHP-FPM(7系)やNginxのバージョンはlatestです。

下記リポジトリを例に進めます。

https://github.com/Lycheejam/php-crud-sample 🔗

事象

前述しましたがVSCodeからXdebugを利用してリモートデバッグを実行し、
ブレークポイントで1分以上経過するとタイムアウトエラーが発生する。

原因

Nginxのデフォルトタイムアウト値を超えてしまうため。

対策

対策としては下記の3つがあります。

今回はnginxから渡されるfastcgiの値を変更します。
他、2つについては検証していません。

nginx.confを編集

server {
  # 省略
  location ~ \.php$ {
     fastcgi_pass   php:9000;
     fastcgi_index  index.php;
     fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
     fastcgi_read_timeout 3600;  # 追加
     include        fastcgi_params;
  }
}

上記設定で好きなだけデバッグで変数を眺められる。

雑感

ネットないのつらい。



前の記事
Xdebugのvar_display_max_XXXが設定変更されない
次の記事
JavaScriptでテキストボックスの文字数をリアルタイムにカウントしたい