よくわかっていないので、間違っているところ・余計なところ・足りないところがあれば教えて下さい。
MAMP 5.3
PHP 7.3.1
Xdebug v2.8.1
homebrewを使います。
Xdebugをインストールする
/Applications/MAMP/bin/php/php7.3.1/lib/php/extensions/no-debug-non-zts-20180731/
の中身を見てもxdebug.so
がなかったので、インストールしました。
以下のリンク先に手順の案内があります。
Xdebug: Support — Tailored Installation Instructions
詳しく説明していきます。
↓ まず、MAMPのStart Servers
を押した後、Open WebStart page
を押します。
PHPINFOのHTMLソースをすべてコピーします。
先程のリンク先にソースを貼る場所があるので、そこに貼ります。
そうすると、ダウンロード手順が案内されます。
まず、xdebug-2.8.1.tgz
をダウンロードします。
ターミナルを開き、ダウンロードしたファイルがあるディレクトリにcd
コマンドで移動します。
そこで以下のコマンドを実行してファイルを解凍します。
$ tar -xvzf xdebug-2.8.1.tgz
↓ 解凍したファイルに移動して、phpize
を実行します。
$ cd xdebug-2.8.1
$ phpize
# こんな表示が出ます
Configuring for:
...
Zend Module Api No: 20180731
Zend Extension Api No: 320180731
もしもここでエラーが出た場合はautoconfをインストールします。
$ brew install autoconf
成功したら以下を実行します。
$ ./configure
$ make
xdebug.so
をMAMPの中にコピーします。
$ cp modules/xdebug.so /Applications/MAMP/bin/php/php7.3.1/lib/php/extensions/no-debug-non-zts-20180731
php.iniの設定を変更する
/Applications/MAMP/bin/php/php7.3.1/conf/php.ini
の設定を変更します。
一番下に以下の記述を足します。
zend_extension="~"
の行がコメントアウトされている場合は先頭の;
を削除します。
[xdebug]
zend_extension="/Applications/MAMP/bin/php/php7.3.1/lib/php/extensions/no-debug-non-zts-20180731/xdebug.so"
xdebug.remote_enable=1
xdebug.remote_autostart=1
MAMPのStop Servers
、Start Servers
を押して再起動をしてください。
ターミナルでMAMPのPHPを実行するようにする
大変参考にさせていただきました。
・MAMPのPHPをターミナルから実行する方法 - Qiita
パスを通します。
.bashrc
に以下を記述します。bashではなくzshなどの場合は、がんばってください。
export PATH=/Applications/MAMP/bin/php/php7.3.1/bin:$PATH
パスの確認
$ which php
/Applications/MAMP/bin/php/php7.3.1/bin/php
確認する
$ php -m
(省略)
[Zend Modules]
Xdebug
正しく動いていれば、オレンジ色のエラーがブラウザに表示されたり、var_dump()が見やすくなったりします。
Visual Studio Codeに拡張機能をインストールする
拡張機能 PHP Debug をインストールします。
VSCodeの左側にある虫のマークをクリックし、デバッグ画面を開きます。
デバッグ画面の上部にある歯車のマークをクリックし、PHPを選択します。
自動でlaunch.json
が作成されます。
デバッグする
MAMPを起動します。
VSCodeでブレークポイントを打ちます。
↓ 左の丸印です。
Listen for XDebugを選択し、三角の再生マークを押します。
ブラウザを開き、ページを更新すると、VSCodeに自動で戻ってきます。
変数の中身とか見れます。
エラーとかも見れます。
以上です。