Posted at

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

More than 3 years have passed since last update.


環境

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。

phpinfo-1.png


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を確認する。

phpinfo-2.png

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


NetBeans設定

XdebugをNetBeansで使う為の設定を行う。

NetBeans起動後、「NetBeans」→「Preferences」→「PHP」→「一般」の「PHP5 インタプリタ」項目に使用するPHPのパスを記入する。

今回は、「/Applications/MAMP/bin/php/php5.6.7/bin/php」となる。

スクリーンショット-2015-06-13-15.03.58.jpg

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

スクリーンショット-2015-06-13-15.08.05.jpg

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