はじめに
xdebugでデバッグ出来ない時に確認すべき内容について。
VM上にプロジェクトを作り、デバッグしようとして、詰まりました。確認を行ったことをメモ書きします。
直接的には関係無い箇所も含まれていますが、
不明点の事象を切り分ける意図で、
書いてあります。
最終更新日
2021年8月23日
環境の情報
ubuntu 20.04
VirtualBox
Vagrant
phpstorm
apache2
php
xdebug
公式はこちら
https://xdebug.org/
xdebug
注意
設定ファイルの書き方など、バージョンにより異なりますので、最新の公式を確認して下さい。
関連記事
私が詰まった原因
己のとりあたまでは、誠に難解でした。
詰まった原因ですが、大体こんな感じになります。
・リモートデバッグの仕組みを理解できていなかった。
・ネットワークの知識が足らなかった。
・設定する箇所がいくつかあったため、混乱した。
・やり方が色々あったため、正しいやり方が分からなかった。故に、原因の特定が難しかった。
・公式のドキュメントに、たどり着けなかった。
・個人のブログには、出来ない、さまざまな理由が書いてあり、混乱した。
・設定ファイルの設定をどれを付けるべきか分からなかった。
前提
いまいち仕組みが理解が出来ていませんでしたが、xdebugは、どうやらこの図の仕組みになっているようです。
(ポート番号やipは環境により異なります。)
公式のここにありました。
https://2.xdebug.org/docs/remote
確認するべき大まかな観点
・ネットワークの回線そのものに問題は無いのか。
・vagrant、apache2、IDE、php、xdebugは問題無く動いているのか。
・IDEの設定に問題は無いのか。
・デバッグの設定ファイルに問題は無いのか。
・ホスト←→ゲスト間の通信間に問題は無いのか。
ネットワーク & サーバー(Apacheなど)
・ホストのネットワークに問題は無いか。
・ゲストのネットワークに問題は無いか。
(ifconfigしてipが表示されるか。)
・サイトは問題無く表示されるのか。
・httpsを使用しているのか。
・httpsを使用しているなら、証明書はあるのか。
・Apacheのページが問題無く表示出来るか。
・Apacheは、問題無く起動出来るか。
・Apacheのプロセスが起動しているか。
・Apacheの設定ファイルに問題は無いか。
・Apacheのドキュメントルートに問題は無いか。
・Apacheが使っているポートを確認する。
・ファイルを表示しているのは何番ポートなのか。
・9000ポートは使用できるか。
・ファイヤーウォールが、どうなっているか。
・vhostの設定に問題無いか。
・ポートが開いてるか。
VM(vagrantなど)
・VMが問題無く起動しているか。
・VMにホストのファイルが、問題無く同期が出来ているか。
・ファイルを、どこのipアドレスで表示させているのか。
・Vagrantfileファイルの記載は問題ないか。
・vagrant reloadを忘れていないか。
(Vagrantfileファイルを操作した後)
php
統合開発環境 (phpstormなど)
・設定に問題は無いのか。
・エラーログは何か出ているのか。
その他
・他のアプリではどうなるのか。
・各バージョンに問題は無いか。
表示
このように表示されましたら問題ありません。
こんな時は
Cannot load Xdebug - it was already loaded、が表示される。
xdebugの設定ファイルがエラーで読み込めていません。
設定ファイルを確認して下さい。
書く場所は、どちらでも問題ありませんが、2つとも書くと2つとも、読み込んでしまうようです。
また、コピーしたものも読み込んでしまうようです。
インストールしたバージョンによって、
書き方が、違うため、バージョンと合っているかも確認してみて下さい。
(apacheの設定ファイルなどとは、違うよう。)
(2021年08月25日現在時点)
phpinfoにて、xdebugの情報が出てこない。
xdebugがあるか、xdebugが有効になっているか、
確認してみて下さい。