はじめに
PHP開発において、XdebugによりIDE(VS Code、PHPStorm)からソースコードのブレークポイントで止めてステップ実行をするためのコンフィグレーションを3つのパターンに分けて説明します。
システム環境
- クライアント
- 開発用のマシン、IDEを使って実際にデバッグを行う側。
- Windows 10、WSL2。
- サーバーマシン
- Webアプリが稼働しているマシン。
- ただし、このサーバーの中にDockerが稼働する場合もある。
- Docker
- コンテナを稼働させる仮想化サービス。
- Webサーバー
- デバッグ対象となるWebサーバー。
- Apache2。
- Xdebug
- Xdebug2とXdebug3を扱う。
- IDE
- デバッグに使用する統合開発環境。
- VS CodeとPHPStormを扱う。
壱ノ型 – WSL2環境
Windows PC上のWSL2上のUbuntuディストロ上で稼働しているWebサーバー(Apache)にクライアント(ホスト)から接続してデバッグを行う。クライアントと言ってもこの型では物理的にはすべて1台のマシンで完結しており「クライアント=開発PCかつ仮想サーバーマシン(Include Apache)」です。
論理的にはクライアント、WSL2上の仮想サーバーマシンとなります。文章での説明よりも図を見た方が早いでしょう。
※ 仮想環境が発達してきている昨今、「~上の~上の」というわかりづらい表現となってしまうことをお許しください。
弐ノ型 – WSL2+Docker
Windows PC上のWSL2上のUbuntuディストロ上で、同じくWSL2上で稼働しているDocker Desktop上のコンテナの上のWebサーバー(Apache)にクライアントから接続してデバッグを行う。クライアントと言ってもこの型ではすべて1台のマシンで完結しており「クライアント=開発PCかつ仮想サーバーマシン(Include Ubuntuディストロ > Docker、Apache)」です。
参ノ型 – リモートサーバー+Docker
リモートサーバー、たとえばDCやAWSのようなクラウドサーバー上で稼働しているサーバーに接続してデバッグします。通常はローカル開発環境でデバッグしてリモートサーバー(多くの場合は本番サーバー)にデプロイするのが普通ですが、どうしても環境の都合上実際のサーバー上での動きを確認したいことがあります。
VS Codeは比較的簡単に設定できますが、PHPStorm(IntelliJ)でのリモートデバッグは昨年の終わりごろ(2021年)に環境が整ってきたらしいので、まだベータ版としてのサポートです。
以下続く
この後、壱ノ型、弐ノ型、参ノ型のそれぞれについて別ポストで詳細を説明していきます。