M1 Mac、XAMPPのPHPという環境でXdebugをインストールをして、PHPをステップ実行できるようになりました。私が成功した方法の備忘録ですので、真似するかは自己責任で判断してください。
XAMPPのPHPにPATHを通す
まず、XAMPPのPHPをターミナルで呼び出せるようにします。
echo 'export PATH="/Applications/XAMPP/xamppfiles/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
確認:php --version
これでXAMPPのPHPのバージョンが表示されればOK。
2. Xdebugのインストール
XAMPP同梱のPHPでpecl
コマンドを使います(sudoをつけて管理者権限で実行)
sudo pecl install xdebug
autoconfをインストールする
autoconf がないと下記のエラーになります。
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.
ERROR: `phpize' failed
autoconfをHomebrew経由でインストールします:brew install autoconf
autoconfが正しくインストールされたか確認:autoconf --version
問題なければ再度sudo pecl install xdebug
を実行して完了です。
3. php.iniの編集
php.iniはApplications/XAMPP/xamppfiles/etc
フォルダにあります
1700行くらいあってビビりますが、最終行に以下をコピペして保存し、XAMPPのApacheを再起動して完了です。
[xdebug]
zend_extension="xdebug.so"
xdebug.mode=debug
xdebug.start_with_request=yes
4. VSCode側の設定
- 拡張機能 →
PHP Debug
をインストール - 適当なPHPを書いてブレークポイントを設定してRun>Start Debugging (F5)を押すとPHPのパスがないと言われる。
- settings.jsonを開き
"php.debug.executablePath": "/Applications/XAMPP/xamppfiles/bin/php"
を追加(また最終行でOK) - 再度Run>Start Debugging (F5)を押すとステップ実行できて、変数やスタックを確認できます。

ちなみにこれはWikipediaの「今日は何の日」を取得してみる実験コードをAIで書いたものです。ステップ実行できないとAIのコードが正しいか検証できなくて困るんですよね。
<?php
$date = date('n月j日'); // 今日の日付
$url = "https://ja.wikipedia.org/wiki/{$date}";
$html = @file_get_contents($url);
if ($html === false) {
die("ページを取得できませんでした。");
}
$doc = new DOMDocument();
libxml_use_internal_errors(true);
$doc->loadHTML($html);
libxml_clear_errors();
$xpath = new DOMXPath($doc);
$nodes = $xpath->query('//*[@id="mw-content-text"]/div[1]/ul[1]/li');
$events = [];
foreach ($nodes as $li) {
$events[] = trim($li->textContent);
}
echo "<h1>今日は何の日:{$date}の出来事</h1>";
echo "<ul>";
foreach ($events as $event) {
echo "<li>" . htmlspecialchars($event, ENT_QUOTES, 'UTF-8') . "</li>";
}
echo "</ul>";
実行結果

確認コマンド
現在どのPHPを使っているか確認:which php
Xdebugのロード確認:php -i | grep xdebug