PHPのデバッグを効率化するために、NetBeansにXDebugを利用したPHPのデバッグ環境を整えます。 これにより、PHPの処理を任意の位置に設置したブレークポイントで中断し変数値を確認したり、ステップ実行で処理を追いかけることが可能となります。
PHP開発環境の準備
XAMPPとNetBeansをインストールしてそれらが利用出来る環境を整えます。未だの場合は、コチラを参照して下さい。
XDebugダウンロード
Windows用のXDebugのバイナリファイルをXDEBUG EXTENSION FOR PHPのダウンロードページからダウンロードします。
XDebugのバージョンは最新のバイナリファイルをダウンロードするのが良いでしょう。ただ同一XDebugのバージョンでも、OSのプラットフォーム(32bit or 64bit)、PHPのバージョン、スレッドセーフ(IISやApache worker MPMでPHPを実行する場合のZend Thread Safety(ZTS))対応有無により複数のバイナリファイルが公開されています。開発環境にあった適切なバイナリファイルをダウンロードして下さい。 ダウンロードしたバイナリファイルは、<XAMPPインストールフォルダ>\xampp\php\ext内に保存します。
適切なバイナリファイルを利用しないとXAMPPがそのバイナリファイルを読み込めずXDebugが有効になりませんので注意が必要です。
ただ、実は適切なバイナリファイルを確実な方法で選択しダウンロードする方法があるので今回はこの方法を採用します。
バイナリファイルの配布先であるXDEBUG EXTENSION FOR PHPのWebサイトでは、phpinfo()が出力するHTMLソースからOSプラットフォーム、PHPバージョン、スレッドセーフ有無等を解析し、環境にあった適切なバイナリファイルのダウンロードURLを示してくれる親切な機能が提供されています。
XAMPPを起動させた状態で、http://localhost/xampp/phpinfo.phpにアクセスしてその全てのHTMLソースをコピーします。
次に、Xdebug: Support; Tailored Installation Instructionsにアクセスし赤枠内にコピーしたHTMLソースを貼り付け、[Analyze my phpinfo() output]をクリックします。
すると、phpInfo()の内容が解析され、赤枠内のINSTRUCTIONSにバイナリファイルのダウンロード先とphp.iniに追記すべき情報を示してくれます。
この指示に従い、バイナリファイルをダウンロードして下さい。
php.iniの編集
<XAMPPインストールフォルダ>\xampp\php\php.iniを開き、XDebugセクションを以下の通り編集し保存します。
まず、「;report_zend_debug = 0」のコメントアウトを外します。
; This setting is on by default.
;report_zend_debug = 0
2行目先頭のセミコロンを削除して以下の様にする。
; This setting is on by default.
report_zend_debug = 0
次に、XDebugセクションを探し、以下の通りに追加及び編集します。zend_extensionキーには、先のINSTRUCTIONSで示された情報を記載します。
[XDebug]
zend_extension = "C:\xampp\php\ext\php_xdebug-2.2.5-5.5-vc11.dll"
xdebug.remote_enable = On
xdebug.remote_handler = "dbgp"
xdebug.remote_mode = "req"
xdebug.remote_host = "127.0.0.1"
xdebug.remote_port = "9000"
xdebug.trace_output_dir = "C:\xampp\tmp"
XDebugの有効化確認
XAMPPを再起動させ、http://localhost/xampp/phpinfo.phpにアクセスします。下図のようにXDebugの情報が表示されていればXDebugの有効化は成功です。
NetBeans設定
NetBeasnを起動し、メニューバーから[ツール] – [オプション]を開きます。
PHPのデバッグタブを開き、デバッガ・ポートに、php.iniにおいて、xdebug.remote_portに指定したポート番号を設定し保存します。
xdebug.remote_port = "XXXX"
以上で、XDebugを利用してNetBeasnでPHPをデバッグするための環境構築は完了です。実行したいPHPプロジェクトの実行構成を設定し、デバッグ機能を実行してみて下さい。
Read More