これはなに
PHPStormとdocker上のxdebugを連携したいケースで、
「なんで繋がんないんだよ!!」ってなったので、
ヒントになることを書きます。
Xdebugとは?
Xdebugとは高機能なPHPのデバッグツールです。 PHPのデバッグでおなじみの「var_dump」を見やすくしてくれたり、ボトムネックになっている処理を見つけたり、ステップ実行できたりします。 その他のデバッグツールとしてはZendDebuggerがあります。
Xdebugを使い倒す5つのTIPS | スマホサイト・アプリをつくろう。
より。
ログを有効化する
xdebug.iniやphp.iniに設定を追加しましょう。
追加したらnginxやapacheの再起動が必要です。
xdebug.remote_log=/tmp/xdebug.log
/tmp/xdebug.logにログが表示されますので、
出力されたエラー内容を見て、原因を特定しましょう。
ググれば関連する情報が出てきます。
ログを見ないで疎通させようとするのは、地図を持たないで山に入るようなもんです。
そもそもxdebugの設定が読み込まれているか?
xdebugの設定を記載してもxdebugが動かない、ログも出ないときは
phpに設定が読み込まれているか確認しましょう。
xdebug.soの読み込み忘れでxdebugが動いていなかったり、
別のファイルで設定が上書きされていた、なんてこともありえます。
下記のコマンドは、phpに読み込まれている設定値を出力するものです。
xdebugが有効になっている場合は、xdebug関係の設定がいくつか出力されます。
php -r 'phpinfo();' | grep xdebug
| grep xdebug
の部分は絞り込みをしています。
PHPStorm上のPath Mappingが設定されているか?
docker上のファイルパスと、ローカルPC上のファイルパスのマッピングを設定する必要があります。
index.phpにブレークポイントを設定する
ブラウザからアクセスされた時に必ず実行されるところにブレークポイントを貼ってみましょう。
laravelだとpublic/index.php
です。
これで、xdebugが動いていないのか、ブレークポイントの追加する場所が悪いのか原因の切り分けができます。
以上、参考になりましたら幸いです。
参考
https://qiita.com/haruna-nagayoshi/items/99fa041e884c2c3975d2
https://qiita.com/castaneai/items/d5fdf577a348012ed8af
https://qiita.com/taniai-lvgs/items/8e9eba112d2d0ed2530f