MACにMAMP、NetBeans、XdebugでPHPをトレースする方法


環境

MAC: Yosemite(10.10.3)
MAMP: 3.2.1
NetBeans: 8.0.2
Xdebug: 2.2.5

前提

MACにMAMPがインストールされている事とする

PHPバージョンの確認

MAMPのphpinfoで、PHPのバージョンを確認する。
私の環境では、5.6.7。

Xdebugを有効化

MAMPをインストールすると、Xdebugも一緒にインストールされています。
しかし、デフォルトではXdebugは無効化されている為、有効化する必要があります。

まず、ターミナルを開いて下記コマンドで、php.iniの場所を確認する。

$ find /Applications/MAMP -name "php.ini"
/Applications/MAMP/bin/php/php5.1.6/conf/php.ini
/Applications/MAMP/bin/php/php5.2.17/conf/php.ini
/Applications/MAMP/bin/php/php5.3.29/conf/php.ini
/Applications/MAMP/bin/php/php5.4.39/conf/php.ini
/Applications/MAMP/bin/php/php5.5.23/conf/php.ini
/Applications/MAMP/bin/php/php5.6.7/conf/php.ini
/Applications/MAMP/conf/php5.1.6/php.ini
/Applications/MAMP/conf/php5.2.17/php.ini
/Applications/MAMP/conf/php5.3.10/php.ini
/Applications/MAMP/conf/php5.3.13/php.ini
/Applications/MAMP/conf/php5.3.14/php.ini
/Applications/MAMP/conf/php5.3.20/php.ini
/Applications/MAMP/conf/php5.3.27/php.ini
/Applications/MAMP/conf/php5.3.28/php.ini
/Applications/MAMP/conf/php5.3.29/php.ini
/Applications/MAMP/conf/php5.3.5/php.ini
 :
 :

今回の場合は、PHP5.6.7なので「/Applications/MAMP/bin/php/php5.6.7/conf/php.ini」となる。

該当ファイルを念のため複製してバックアップをとり、開き、[xdebug]の箇所を探す。

[xdebug]
;zend_extension="/Applications/MAMP/bin/php/php5.6.7/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so"

私の環境では、上記のように「zend_extension」がコメントアウト状態になっていた為、コメントを外し、下記項目を追加する。

 xdebug.remote_enable=on
 xdebug.remote_handler=dbgp
 xdebug.remote_mode=req
 xdebug.remote_host=localhost
 xdebug.remote_port=9000
 xdebug.idekey=netbeans-xdebug
 xdebug.profiler_enable=1
 xdebug.profiler_output_dir="/Applications/MAMP/tmp"

最終的に、こうなる。

 zend_extension="/Applications/MAMP/bin/php/php5.6.7/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so"
 xdebug.remote_enable=on
 xdebug.remote_handler=dbgp
 xdebug.remote_mode=req
 xdebug.remote_host=localhost
 xdebug.remote_port=9000
 xdebug.idekey=netbeans-xdebug
 xdebug.profiler_enable=1
 xdebug.profiler_output_dir="/Applications/MAMP/tmp"

保存して、MAMPを再起動。
Xdebugが有効化されたか、phpinfoを確認する。

Xdebugの項目が表示されていれば成功。

NetBeans設定

XdebugをNetBeansで使う為の設定を行う。
NetBeans起動後、「NetBeans」→「Preferences」→「PHP」→「一般」の「PHP5 インタプリタ」項目に使用するPHPのパスを記入する。
今回は、「/Applications/MAMP/bin/php/php5.6.7/bin/php」となる。

そして、「デバッグ」タブの「デバッガ・コンソールを表示」にチェックを入れる。

これで、NetBenasからPHPのデバッグ(トレース)が出来るようになる。