Homestead (Laravel環境)、Visual Studio Code、XdebugでPHPのデバッグ環境を構築します。PHPは7.4、ブラウザはGoogle Chromeを使います。
目次
PHPの拡張モジュールXdebugをインストールする
PHPの拡張モジュールXdebugをインストールします。
まずは、仮想マシンにログインします。Homesteadを使用しているので、Homesteadディレクトリに移動して以下のコマンドを実行します。
1 2 | vagrant up vagrant ssh |
仮想マシンにログインしたら、以下のコマンドでphpの情報を表示します。
1 | php -i |
表示された情報をすべてコピーします。情報が多くてコピーしづらかったので僕は以下のように一度テキストファイルに書き出しました。
1 | php -i >> phpinfo.txt |
コピーしたPHPの情報をXdebug公式サイトのWizardページに貼り付けます。貼り付けたらページ下部にある「Analyse my phpinfo() output」ボタンを押下します。

うまくいくと、Summary(PHP環境の概要)とInstructkions(Xdebugのインストール手順)が表示されます。

手順に沿ってインストールを進めます。環境によってインストール手順が若干異なると思いますが、PHP 7.4の環境では以下のように進めました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | cd ~/ mkdir tmp && cd tmp wget http://xdebug.org/files/xdebug-2.6.0.tgz tar -xvzf xdebug-2.6.0.tgz cd xdebug-2.6.0 phpize ./configure make sudo cp modules/xdebug.so /usr/lib/php/20190902 sudo vi /etc/php/7.4/cli/php.ini # php.iniの最下部に以下を追加します zend_extension = /usr/lib/php/20190902/xdebug.so sudo systemctl restart nginx |
Xdebugの設定をする
Xdebugの設定を行います。
1 2 3 4 5 6 7 8 9 10 | sudo vi /etc/php/7.2/fpm/conf.d/20-xdebug.ini # 20-xdebug.iniに以下の設定を追加します。 # xdebug.remote_portは9000番では動かないようなので9001番にしました。 zend_extension=xdebug.so xdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_connect_back = 1 xdebug.remote_port = 9001 xdebug.max_nesting_level = 512 |
設定が完了したら仮想マシンからログアウトして仮想マシンを再起動します。
1 2 3 | # 仮想環境からログアウトします。 exit vagrant reload |
Visual Studio CodeにPHP Debug拡張機能を追加
Visual Studio Code画面の左側の拡張機能を押下して、PHP Debugをインストールします。

つぎに、デバッグしたいファイルを開き、Visual Studio Code画面の左側の実行(虫と三角のアイコン)をクリックします。

「launch.json ファイルを作成します。」をクリック→プロジェクトディレクトリを選択→PHPを選択します。
プロジェクトフォルダ直下に.vscodeフォルダが作られその中に、launch.jsonが作られます。launch.jsonを環境に合わせて設定します。といっても基本的なことは最初から書かれているので、必要な部分を修正追加していきます。以下は僕の設定です。port番号を9001にしたのと、configurationsの0番目の配列にpathMappingsプロパティを追加しました。pathMappingsプロパティには、仮想マシン内のHomesteadやLaravelファイルがあるディレクトリを指定します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | { // IntelliSense を使用して利用可能な属性を学べます。 // 既存の属性の説明をホバーして表示します。 // 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "Listen for XDebug", "type": "php", "request": "launch", "port": 9001, "pathMappings": { "/home/vagrant/code": "${workspaceRoot}" } }, { "name": "Launch currently open script", "type": "php", "request": "launch", "program": "${file}", "cwd": "${fileDirname}", "port": 9001 } ] } |
VSCodeでデバッグする
Visual Studio Codeでブレークポイントを指定します。
ブラウザを更新します。
ブレークポイントでストップしましたか?ストップしたらHomestead+VSCode+XdebugでPHPをデバッグすることができています。