XDebugを用いてNetBeans IDEでPHPのデバッグをする (XDebugのインストール) - PHP

NetBeans IDEを使いXDebegを使ったデバッグをします。XDebugを使うとブレークポイントを設置してステップ実行が使えるようになりデバッグの効率が高まります。
以下インストール手順を紹介します。

NetBeans IDE のインストール

NetBeans IDEをインストールします。手順はこちらの記事で紹介しています。

Apache Web Server のインストール

Apache Web Server をインストールします。手順はこちらの記事で紹介しています。

PHP(Thread Safe版)のインストール

PHPのThread Safe版をインストールします。手順はこちらの記事で紹介しています。
#design(style="color:red"){※PHPをインストールするディレクトリのパスに「 」空白が含まれていると動作しません。インストールパスがデフォルト(c:\Program Files\ディレクトリ)のままでインストールしないことがポイントです。c:\phpディレクトリなどにインストールします。}

httpd.conf の編集

httpd.conf を編集します。

1.phpの設定

httpd.confの末尾に以下を追記します。
LoadModule php5_module C:\PHP\php5apache2_2.dll
AddHandler application/x-httpd-php .php
PHPIniDir "C:/php"

2.DocumentRootの変更

DocumentRootを(マイドキュメントなどに)変更します。(DocumentRoot と Directory部分)
今回はマイドキュメント内のNetBeansProjectsフォルダをドキュメントルートに設定しました。
DocumentRoot "C:/Users/(ユーザー名)/Documents/NetBeansProjects"
...
<Directory "C:/Users/(ユーザー名)/Documents/NetBeansProjects">

設定ができたら、Apache Web Serverを再起動します。

PHPの動作確認

ドキュメントルートに以下のPHPファイルを配置します。
info.php
<?php
  phpinfo();
?>
#code{http://localhost/info.php} にアクセスし、PHPの情報が表示されることを確認します。

XDebugのインストール

XDebugをダウンロードします。今回はインストールしたPHPがVC9のThread Safe版であったため、XDebug 2.1.0のVC9のThread Safe版を用いました。


ダウンロードしたDLLファイル(今回はphp_xdebug-2.1.0-5.3-vc9.dll)をPHPのextフォルダ(今回は"c:\PHP\ext")にコピーします。

php.iniの編集

php.iniの末尾に以下のXDebugの記述を追加します。
[PHP_XDEBUG] #←ここは任意
report_zend_debug = 0
zend_extension=C:\PHP\ext\php_xdebug-2.1.0-5.3-vc9.dll #←ここはフルパスで記述しないとダメ
xdebug.remote_enable=on
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_handler=dbgp

xdebug.remote_portのポート番号はNetBeans IDEの[ツール]の[オプション]メニューで表示されるオプションダイアログの上部[PHP]アイコンタブの中の[一般]タブにある[デバッグ]セクションのデバッガポートの値を入れます。(下図参照)


設定ができたら、Apache Web Serverを再起動します。

#code{http://localhost/info.php} にアクセスし、PHPの情報が表示されます。情報ページの下部にXDebugに関する情報が表示されていることを確認します。


NetBeans IDEによる動作確認

NetBeans IDEを起動し、ブレークポイントを設置しデバッグ実行します。設定ができていれば下図のようにブレークポイントで実行が一時中断されます。


著者
iPentecのプログラマー、最近はAIの積極的な活用にも取り組み中。
とっても恥ずかしがり。
最終更新日: 2024-01-06
作成日: 2011-01-22
iPentec all rights reserverd.