PHP
xdebug
mamp
VSCode

phpをvscodeでデバッグする方法(MAMP環境)

はじめに

  • phpをデバッグする環境を構築したかったのですが、案外苦労してしまったのでメモです。

環境

  • macOS High Sierra - 10.13.3
  • MAMP - 4.2.1
  • vscode - 1.21.1
  • php - 7.1.8

参考

Visaul Studio Code で PHP、インテリセンスとデバッグ

https://qiita.com/diconran/items/6caed6b15cdda23c9933

osxのmampでxdebugを有効にする

https://qiita.com/cubdesign/items/f2a51b1c95b5d619673f

MacにHomebrewでPHPスクリプトの実行&デバッグ環境構築

https://qiita.com/nenokido2000/items/11f2dd0ef270481800ef

xdebugのインストール

  • php7.0に対応したxdebug
% brew install homebrew/php/php70-xdebug

phpのデバッグ設定

  • php.iniの編集

/Applications/MAMP/bin/php/php7.1.8/conf/php.ini

このファイルの一番下の部分を書き換え

[xdebug]
;zend_extension="/Applications/MAMP/bin/php/php7.1.8/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so"

これを

[xdebug]
zend_extension="/Applications/MAMP/bin/php/php7.1.8/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so"
xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_autostart=1
xdebug.remote_port=9000

こう変えました。

ポートはデフォルトで9000の設定になっているらしいので、記載不要かもしれません

デバッグの実行

  • vscodeのデバッグの設定
    vscodeの拡張機能PHP Debugをインストールします
    vscode再起動必要かも?
    デバッグ(虫眼鏡アイコン)→歯車アイコン→launch.jsonが起動して以下のようなことが書いてある
{
    // IntelliSense を使用して利用可能な属性を学べます。
    // 既存の属性の説明をホバーして表示します。
    // 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for XDebug",
            "type": "php",
            "request": "launch",
            "port": 9000
        },
        {
            "name": "Launch currently open script",
            "type": "php",
            "request": "launch",
            "program": "${file}",
            "cwd": "${fileDirname}",
            "port": 9000
        }
    ]
}

何も変更しなくてもOKのはず

  • MAMP再起動
    サーバを再起動させる必要があります

  • vscode
    実行ボタンでデバッガ起動